war*_*rty 2 haskell functional-programming
我必须在Haskell中创建一个布尔函数,它接收一个单词(String)和一个字符列表.该函数必须验证列表中的所有字符都包含在字符串中.我做了一些研究,发现了这些功能all
,elem
可能会有所帮助.
例:
word = "hello"
list = ['h','o','e']
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样:
allCharBelong word list = all (`elem` word) list
Run Code Online (Sandbox Code Playgroud)
我做了一些测试,它完美地工作(如果你想仔细检查那将是不错的).
我的问题是:为什么当我在elem中取出反引号时,该功能不起作用?
工作: allCharBelong word list = all (`elem` word) list
不工作: allCharBelong word list = all (elem word) list
(`elem` word)
是部分地应用于第二个参数的操作部,它相当于\x -> elem x word
而elem word
= (word `elem`)
= \x -> elem word x
.它有助于使用类型来标注表达式,以便弄清楚有时会发生什么.