In un post di blog su F # per divertimento e profitto, si dice:
In a functional design, it is very important to separate behavior from data. The data types are simple and "dumb". And then separately, you have a number of functions that act on those data types.
This is the exact opposite of an object-oriented design, where behavior and data are meant to be combined. After all, that's exactly what a class is. In a truly object-oriented design in fact, you should have nothing but behavior -- the data is private and can only be accessed via methods.
In fact, in OOD, not having enough behavior around a data type is considered a Bad Thing, and even has a name: the "anemic domain model".
Dato che in C # sembriamo continuare a prendere in prestito da F # e provare a scrivere più codice in stile funzionale; come mai non stiamo prendendo in prestito l'idea di separare i dati / il comportamento e persino di considerarli negativi? È semplicemente che la definizione non ha con OOP, o c'è una ragione concreta che non funziona in C # che per qualche motivo non si applica in F # (e infatti, è invertito)?
(Nota: sono particolarmente interessato alle differenze in C # / F # che potrebbero cambiare l'opinione di ciò che è buono / cattivo, piuttosto che di individui che potrebbero non essere d'accordo con entrambe le opinioni nel post del blog).