वहाँ स्रोत-कोड है कि another one of my questions के जवाब में जन्म लिया है का एक टुकड़ा है,हास्केल - क्या यह एक बंद है?
infFromPrefix :: Eq a => ([a] -> [a]) -> [a] -> [a]
infFromPrefix rules prefix = inf where
inf = prefix ++ case stripPrefix prefix (rules inf) of
Just suffix -> suffix
Nothing -> error "Substitution does not preserve prefix"
जहां मैं बहुत यकीन है कि inf
को बंद करने के रूप में यह अर्थ में इसका आवरण दायरे से चर की पहुंच है होना चाहिए कि यह infFromPrefix
पर पारित पैरामीटर का उपयोग करता है, लेकिन अनिवार्य रूप से infFromPrefix
और inf
समान कार्य है, inf
केवल को एक और संक्षिप्त परिभाषा की अनुमति देता है। एक बराबर परिभाषा
infFromPrefix rules prefix = prefix ++ case stripPrefix prefix (rules $ infFromPrefix rules prefix) of
Just suffix -> suffix
Nothing -> error "Substitution does not preserve prefix"
मैं सही हो सकता है, inf
एक बंद है?
मैं "नहीं" कहूंगा क्योंकि 'inf' कोई फ़ंक्शन नहीं है; यह एक सूची है। – melpomene
@melpomene मुझे उत्सुक भाषाओं में लगता है कि कार्यों को बंद करने के लिए बंद करने के लिए यह समझ में आता है; आलसी भाषाओं में मैं इतना यकीन नहीं कर रहा हूँ। कम से कम मैं शर्त लगा सकता हूं कि जीएचसी की डेटा संरचना है, यह "बंद" कहती है जो कुछ स्तर पर 'inf' का प्रतिनिधित्व करने में शामिल है। –
@melpomene आप सही हैं, अन्यथा नियम इसे इनपुट के रूप में स्वीकार नहीं करेंगे। चीयर्स। –