I(Haskell的新手)想要找出是否存在行(行)中的单词。我看到很少的功能来实现它:elem,isInfixOf
Prelude DL> isInfixOf "new" "I am new to Haskell"
True
Prelude DL> elem "new" ["I am", "new to", "Haskell"]
False
如何实施' isInfixOf'在字符串列表中的每个字符串上。
答案 0 :(得分:4)
如果您希望成真:
any (isInfixOf "new") ["I am", "new to", "Haskell too!"]
如果你想要一个Bool列表:
map (isInfixOf "new") ["I am", "new to", "Haskell too!"]
答案 1 :(得分:3)
您可以将isInfixOf
函数映射到Strings
列表,如下所示:
ghci>> map (isInfixOf "new") ["I am", "new to", "Haskell"]
[False, True, False]
map
评估列表中每个元素的谓词。
在此基础上,您可以使用Data.List
中的其他功能来查找有关整个列表的更多信息:
ghci>> any (isInfixOf "new") ["I am", "new to", "Haskell"]
True
ghci>> all (isInfixOf "new") ["I am", "new to", "Haskell"]
False