Dalam posting blog di F # untuk kesenangan dan keuntungan, dikatakan:
Dalam desain fungsional, sangat penting untuk memisahkan perilaku dari data. Tipe data sederhana dan "bodoh". Dan kemudian secara terpisah, Anda memiliki sejumlah fungsi yang bekerja pada tipe data tersebut.
Ini adalah kebalikan dari desain berorientasi objek, di mana perilaku dan data dimaksudkan untuk digabungkan. Lagipula, itulah kelas sebenarnya. Dalam desain yang benar-benar berorientasi objek, Anda seharusnya hanya memiliki perilaku - data bersifat pribadi dan hanya dapat diakses melalui metode.
Bahkan, dalam OOD, tidak memiliki perilaku yang cukup di sekitar tipe data dianggap sebagai Hal yang Buruk, dan bahkan memiliki nama: " model domain anemik ".
Mengingat bahwa dalam C # kita tampaknya terus meminjam dari F #, dan mencoba untuk menulis lebih banyak kode gaya fungsional; kenapa kita tidak meminjam ide untuk memisahkan data / perilaku, dan bahkan menganggapnya buruk? Apakah hanya karena definisi tidak dengan OOP, atau ada alasan konkret bahwa itu buruk di C # yang karena beberapa alasan tidak berlaku di F # (dan pada kenyataannya, dibalik)?
(Catatan: Saya secara khusus tertarik pada perbedaan dalam C # / F # yang dapat mengubah pendapat tentang apa yang baik / buruk, daripada individu yang mungkin tidak setuju dengan pendapat dalam posting blog).