2016-12-14 42 views
0

我正在尝试检查我在elm中的一组字符是否只包含有效的字符。如果发现一个无效的字符,我将返回这些字符,用逗号分隔。我目前试图将字符串转换为字符列表,然后将该列表转换为一组字符。然后用一组有效的字符来区分这个集合,不确定去哪里之后,我以前没有在Elm写过很多东西。如果没有找到差异,则不返回任何内容。检查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语句不榆树在线编译工作,它说,这是“在”

回答

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语句。