2016-07-05 3 views
8

Elm은 [1..100]을 지원하지만 ['a'..'z']을 시도하면 컴파일러에서 형식이 일치하지 않습니다 (숫자가 필요하고 Char가 발생 함). 이 일을 할 수있는 방법이 있습니까?Elm의 범위 식

답변

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

Elm 0.18에서'[..]'문법이 제거되었으므로 이제'[a .. b]'의 인스턴스를'List.range a b '로 대체해야합니다. 'List.range'의 타입은'Int -> Int -> List Int'이므로, 문자들과도 작동하지 않을 것입니다. –