में 3 तर्कों को घुमाएं मुझे हास्केल में तीन तर्कों को हटाने के लिए एक फ़ंक्शन को घुमाने में समस्या हो रही है।Haskell
अस्वीकरण: कोर्सवर्क नहीं, मुझे इस प्रश्न से आज किसी के साथ संघर्ष करने के लिए कहा गया था और यह मुझे परेशान कर रहा है।
कस्टम प्रकार/कार्य हम दिए गए थे (केवल प्रकार याद कर सकते हैं)
type MyThing
= (Char, String)
type MyThings
= [MyThing]
funcA :: MyThings -> String -> String
funcB :: MyThings -> String -> Int -> String
हम साथ शुरू किया था:
funcB as str n = iterate (funcA as) str !! n
और यह नीचे कम इस प्रकार है:
funcB as str n = iterate (funcA as) str !! n
funcB as str = (!!) . (iterate (funcA as)) str
funcB as = (!!) . (iterate (funcA as))
funcB as = (!!) . (iterate . funcA) as
फिर, अटक गया। हम सिर्फ अंतिम तर्क का उपयोग करने से बचने के बारे में नहीं समझ सकते हैं। मुझे पता है कि मैंने पहले एक समान स्थिति देखी है और एक समाधान था।
उम्मीद कुछ हास्केल प्रतिभा का कहना है सकते हैं कारण है कि मैं एक मूर्ख जा रहा हूँ ...
तुम सिर्फ इस्तेमाल कर सकते हैं [ 'pointfree'] (http://www.haskell.org/: तो ऊपर अभिव्यक्ति काफी आसानी से
यह देखते हुए कि
(.)
साहचर्य है के रूप में वापस पढ़ा जा सकता है हैस्सेलविकि/प्वाइंटफ्री # टूल_एक्सटी) स्वचालित रूप से ऐसा करने के लिए। – kennytmग्रेट चिल्लाओ, उसमें देखेंगे! –