F # 'daki bir blog yazısında eğlence ve kazanç için:
İşlevsel bir tasarımda, davranışı verilerden ayırmak çok önemlidir. Veri türleri basit ve "aptal". Ve ayrıca, ayrı olarak, bu veri türlerine etki eden bir takım işlevlere sahipsiniz.
Davranış ve verilerin birleştirilmesi gereken nesneye yönelik tasarımın tam tersi budur. Sonuçta, tam olarak bir sınıf budur. Gerçekten nesne yönelimli bir tasarımda, aslında davranıştan başka hiçbir şeye sahip olmamanız gerekir - verilere özel ve sadece yöntemlerle erişilebilir.
Aslında, OOD'de, bir veri türü etrafında yeterli davranışa sahip olmamak, Kötü Bir Şey olarak kabul edilir ve hatta bir adı vardır: " anemik etki alanı modeli ".
C # 'dan F #' dan ödünç almaya devam ettiğimiz ve daha işlevsel stil kodu yazmaya çalıştığımız göz önüne alındığında; Neden veriyi / davranışını ayırma fikrini ödünç almıyoruz ve hatta kötü olduğunu düşünüyoruz? Tanımın OOP ile birlikte olmaması mı, yoksa C # da kötü olmasının somut bir nedeni var mı? Bazı nedenlerden dolayı F # 'da geçerli değil (ve aslında, tersine çevrilmiş)?
(Not: C # / F # 'daki, blog postasındaki herhangi bir görüşe katılmayacak kişiler yerine, neyin iyi / kötü olduğu fikrini değiştirebilecek farklılıklarla özellikle ilgileniyorum).