2016-07-05 19 views
8

एल्म [1..100] का समर्थन करता है, लेकिन अगर मैं ['a'..'z'] का प्रयास करता हूं, तो संकलक मुझे एक प्रकार का मेल नहीं देता है (एक संख्या की अपेक्षा करता है, एक चर प्राप्त करता है)। क्या यह काम करने का कोई तरीका है?एल्म

उत्तर

17

बस संख्या की श्रेणी बना सकते हैं और वर्ण से मैप:

charRange : Char -> Char -> List Char 
charRange from to = 
    List.map Char.fromCode [(Char.toCode from)..(Char.toCode to)] 

charRange 'a' 'd' -- ['a','b','c','d'] : List Char 

संपादित, एल्म 0.18 और ऊपर से:

List.map Char.fromCode [97..122] 

संपादित, या एक समारोह के रूप में , List.range अंततः एक समारोह है:

charRange : Char -> Char -> List Char 
charRange from to = 
    List.map Char.fromCode <| List.range (Char.toCode from) (Char.toCode to) 
+2

'[..]' वाक्यविन्यास को एल्म 0.18 में हटा दिया गया था, इसलिए अब आपको 'सूची' के साथ '[a .. b]' के किसी भी उदाहरण को प्रतिस्थापित करने की आवश्यकता है। ध्यान दें कि 'List.range' का प्रकार' Int -> Int -> List Int' है, इसलिए यह वर्णों के साथ भी काम नहीं करेगा। –

संबंधित मुद्दे