检查Elm

时间:2016-12-14 02:07:21

标签: set diff elm

我试图检查我在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”

1 个答案:

答案 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语句时函数的必要部分。