मुझे एक फ़ंक्शन 'कंपोज़' परिभाषित करने की आवश्यकता है जो एक सूची 'एल' लेती है जो कार्यों की एक सूची है। जब मैं एक पैरामीटर निर्दिष्ट करता हूं जो सूची में सभी कार्यों के अनुरूप होगा, अंतिम फ़ंक्शन इस पैरा का उपयोग करके स्वयं का मूल्यांकन करता है। नतीजा तब दूसरे अंतिम समारोह में पारित किया जाता है और तब तक जब तक हम सूची में पहले आइटम (फ़ंक्शन) तक नहीं पहुंच जाते हैं और हमें अंतिम परिणाम मिलता है।कार्यों की सूची में कार्यों की संरचना!
उदा।
लिखें ((एफएन एन -> एन + 1)^(एफएन एन -> 2 * एन)^#) 3।
जवाब 7.
दे रहा साल (सरल अनुप्रयोगी भाषा) नामक एक कार्यात्मक प्रोग्रामिंग भाषा मेरे कॉलेज में एक व्याख्याता द्वारा तैयार (ऊपर इसलिए अजीब वाक्य रचना में यह लिखने के लिए है (^ सूची आइटम और # निशान अलग सूची का अंत))।
यदि कोई समाधान छद्म कोड में दिमाग में लिखा जा सकता है तो मैं लूप, चर आदि का उपयोग नहीं कर सकता हूं, जिसकी बहुत सराहना की जाएगी। स्पष्ट रूप से समाधान एक पंक्ति का जवाब है। मुझे कल्पना है कि इसमें रिकर्सन शामिल है (हमारे कार्य कार्यों का 99% करते हैं!)।
मैं भी हास्केल को समझ नहीं पा रहा हूं (अनुमान है कि मुझे सीखना होगा!) तो psuedo कोड या यहां तक कि सादे अंग्रेजी भी महान होगी। -
धन्यवाद एक गुच्छा।
, $ अनावश्यक है, और वजह आप इसे पसंद pointfree लिखने के लिए चाहते हो सकता है यह: 'compose = foldl (फ्लिप (।)) आईडी'। – HaskellElephant
टिप्पणी के लिए धन्यवाद, लेकिन यह वास्तव में मेरा समाधान नहीं था, लेकिन मैंने पोस्ट किए गए लिंक से कॉपी किया। –
सही फ़ोल्डर्स आमतौर पर इस विशेष प्रकार की चीज़ के लिए बेहतर होते हैं यदि उनके पास वांछित अर्थशास्त्र - आलसी और अधिक कुशल होता है। – dfeuer