Giusto avviso, sono nuovo alla programmazione funzionale, quindi potrei contenere molte ipotesi sbagliate.
Ho imparato a conoscere i tipi algebrici. Molte lingue funzionali sembrano averle e sono abbastanza utili in combinazione con la corrispondenza dei modelli. Tuttavia, quale problema risolvono effettivamente? Posso implementare un tipo algebrico apparentemente (specie di) in C # come questo:
public abstract class Option { }
public class None : Option { }
public class Some<T> : Option
{
public T Value { get; set; }
}
var result = GetSomeValue();
if(result is None)
{
}
else
{
}
Ma penso che la maggior parte sarebbe d'accordo che questa è una bastardizzazione della programmazione orientata agli oggetti, e non dovresti mai farlo. Quindi la programmazione funzionale aggiunge solo una sintassi più pulita che rende questo stile di programmazione meno evidente? Cos'altro mi manca?