इसलिए मैं पॉइंट फ्री प्रोग्रामिंग के बारे में बहुत कुछ सुनता रहता हूं और मैंने इसे समझने के लिए थोड़ा प्रयोग करने का फैसला किया। इसमें एक संख्या के फैक्टोरियल की गणना करने और इसे एक बिंदु-मुक्त रूप में परिवर्तित करने के लिए एक निश्चित कार्यवाही करना शामिल था। मैं इसे करने में कामयाब रहा, लेकिन बिंदु मुक्त परिणाम बिंदु परिणाम से बहुत कम पठनीय है।प्वाइंट फ्री नोटेशन, रिकर्सन और पैटर्न मिलान
-- pointed
fact 0 = 1
fact n = n * (fact (n-1))
-- point free
fact' = foldr1 (*) . takeWhile ((<) 0) . iterate (flip (-) 1)
क्या मुझे मुफ्त नोटेशन को इंगित करने के लिए कुछ आवश्यक याद आ रही है या क्या यह कुछ परिवर्तनों के रूप में पठनीय है? मेरे लिए ऐसा लगता है कि fact
फ़ंक्शन का एक बड़ा हिस्सा शून्य पर पैटर्न मिलान है, और वास्तव में, पैटर्न मिलान हास्केल से प्यार करने वाले सबसे बड़े कारणों में से एक है। हालांकि, संकेत मुक्त संकेत पूरी तरह से अस्वीकार करता है कि, कुछ अन्य चीजों के साथ जो सूची समझों की तरह बेहद उपयोगी हैं।
मैं 'पसंद करते हैं उत्पाद लिख सकते है। enumFromTo 1'। – Vitus
[हास्केल प्रोग्रामर का विकास] (http://www.willamette.edu/~fruehr/haskell/evolution.html) – sdcvvc
रुको। आपको _point-free वाक्यविन्यास से _readability_ की उम्मीद है? हा। Haha। हा हा हा हा हा। सं। –