我必须在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
我是Haskell的新手,我创建了一个高阶函数:
forAll f ls ls2 = all (`f` ls) ls2
我需要指定类型,但我对函数f的类型有疑问:
GHCi说它是:
forAll :: (a -> t -> Bool) -> t -> [a] -> Bool
但不应该是这样的吗?
forAll :: (a -> t) -> t -> [a] -> Bool
谢谢.