मुझे लगता है कि एक चीज जो आप शायद चला रहे हैं, वह ऐसी चीज है जिसे मैं कार्यात्मक प्रोग्रामिंग सीखने के दौरान भी चलाता था, जो यह है कि कार्यात्मक प्रोग्रामिंग के साथ आप (और लगभग) उच्चतर स्तर पर सोचते हैं / काम करते हैं, जब आप अनिवार्य प्रोग्रामिंग के साथ काम करते हैं।
जो आप कम अभिव्यंजक के रूप में पा रहे हैं, मुझे लगता है कि वास्तव में अधिक अभिव्यंजक है: आपको हर छोटे से विस्तार को समझने की ज़रूरत नहीं है और कार्यात्मक प्रोग्रामिंग में कम कोड के साथ अधिक कर सकते हैं - आप जो लिखते हैं उसके लिए अधिक शक्ति है।
उदाहरण के लिए, मैं अनिवार्य रूप से लिख सकता था:
for each (Person person in people)
print(person.name)
जो पूरी तरह से अंग्रेजी की तरह सुपाठ्य है।
एक हास्केल संस्करण हो सकता है (और यह मान्य हास्केल नहीं है, लेकिन सिंटैक्टिक तुलना के लिए है):
map (print . name) people
जिसके लिए कम कोड और कम विस्तार की आवश्यकता होती है - मुझे चीजों को एक लूप और उसके वेरिएबल (एस) में तोड़ने की जरूरत नहीं है for each (...)
, map
फ़ंक्शन मेरे लिए इसका ख्याल रखता है।
उस स्तर पर काम करने में कुछ आदत लग सकती है। यदि यह कोई मदद करता है, तो हास्केल शायद सबसे कठिन समय था जब मैंने एक नई भाषा सीखी थी जब से मैंने प्रोग्रामिंग शुरू की थी, और मैं जानता हूं> 10 भाषाएं (लिस्प सहित)। हालांकि यह पूरी तरह से सीखने लायक था।