मस्ती और लाभ के लिए एफ # पर एक ब्लॉग पोस्ट में , यह कहता है:
एक कार्यात्मक डिजाइन में, डेटा से व्यवहार को अलग करना बहुत महत्वपूर्ण है। डेटा प्रकार सरल और "गूंगा" हैं। और फिर अलग से, आपके पास कई फ़ंक्शन हैं जो उन डेटा प्रकारों पर कार्य करते हैं।
यह ऑब्जेक्ट-ओरिएंटेड डिज़ाइन के बिल्कुल विपरीत है, जहाँ व्यवहार और डेटा को संयोजित किया जाना है। आखिरकार, यह वही है जो एक वर्ग है। वास्तव में ऑब्जेक्ट-ओरिएंटेड डिज़ाइन में, आपके पास व्यवहार के अलावा और कुछ नहीं होना चाहिए - डेटा निजी है और केवल तरीकों के माध्यम से पहुँचा जा सकता है।
वास्तव में, OOD में, डेटा प्रकार के आस-पास पर्याप्त व्यवहार नहीं होने को एक बैड थिंग माना जाता है, और यहां तक कि एक नाम भी है: " एनीमिक डोमेन मॉडल "।
यह देखते हुए कि C # में हम F # से उधार लेते रहते हैं, और अधिक कार्यात्मक-शैली कोड लिखने की कोशिश कर रहे हैं; कैसे हम डेटा / व्यवहार को अलग करने के विचार को उधार नहीं ले रहे हैं, और यहां तक कि इसे बुरा मानते हैं? क्या यह केवल यह है कि परिभाषा OOP के साथ नहीं है, या कोई ठोस कारण है कि यह C # में खराब है कि किसी कारण से F # में लागू नहीं होता है (और वास्तव में, उलट है)?
(नोट: मैं विशेष रूप से C # / F # में मतभेदों में दिलचस्पी रखता हूं जो कि उन लोगों के बजाय जो अच्छे / बुरे हैं, उनकी राय को बदल सकते हैं, जो ब्लॉग पोस्ट में किसी भी राय से असहमत हो सकते हैं)।