我试图检查我在elm中的字符集是否仅包含有效的字符。如果找到一个无效的char,我会返回那些用逗号分隔的字符。我目前尝试将字符串转换为字符列表,然后将该列表转换为一组字符。然后用一组有效的字符来区分集合,不知道在那之后去哪里,我之前没有在Elm中写过多少。如果没有找到差异,则不返回任何内容。
validChars : Set.Set Char
validChars =
Set.fromList <| String.toList " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
validString : String -> Maybe String
validString x =
let
list =
String.toList x
set1 =
Set.fromList list
diffs=
Set.diff set1 validChars
if Set.isEmpty diffs == True
Nothing
if语句在Elms在线编译器中不起作用,它说它正在寻找“in”
答案 0 :(得分:4)
你的代码有一些问题,这是一个编译的版本。
import Set
validChars : Set.Set Char
validChars = Set.fromList <| String.toList " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
validString : String -> Maybe String
validString string =
let
diff =
Set.diff validChars <| Set.fromList <| String.toList string
in
if not <| Set.isEmpty diff then
Just string
else
Nothing
基本上当它说它正在寻找in
时,它没有错,in
是使用let
语句时函数的必要部分。