榆树中的范围表达式

时间:2016-07-05 06:46:02

标签: elm

Elm支持[1..100],但是如果我尝试['a'..'z'],编译器会给我一个类型不匹配(期望一个数字,得到一个Char)。有没有办法让这项工作?

1 个答案:

答案 0 :(得分:18)

只需创建一系列数字并将其映射到字符:

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

编辑,或作为功能:

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

编辑,从elm 0.18开始,List.range最终是一个函数:

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