函数elem没有反引号不工作

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

Ada*_*ark 6

(`elem` word)是部分地应用于第二个参数的操作部,它相当于\x -> elem x wordelem word= (word `elem`)= \x -> elem word x.它有助于使用类型来标注表达式,以便弄清楚有时会发生什么.