在haskell中的一行中查找单词
我(Haskell的新手)想知道第(行中)行中是否有一个单词。我看到了一些实现它的函数,比如:elem、isInfixOf在haskell中的一行中查找单词,haskell,functional-programming,pattern-matching,Haskell,Functional Programming,Pattern Matching,我(Haskell的新手)想知道第(行中)行中是否有一个单词。我看到了一些实现它的函数,比如:elem、isInfixOf Prelude DL> isInfixOf "new" "I am new to Haskell" True Prelude DL> elem "new" ["I am", "new to", "Haskell"] False 如何在字符串列表中的每个字符串上实现'isInfixOf' 如果您希望实现: any (isInfixOf "new") ["I a
Prelude DL> isInfixOf "new" "I am new to Haskell"
True
Prelude DL> elem "new" ["I am", "new to", "Haskell"]
False
如何在字符串列表中的每个字符串上实现'isInfixOf' 如果您希望实现:
any (isInfixOf "new") ["I am", "new to", "Haskell too!"]
如果您想要Bool的列表:
map (isInfixOf "new") ["I am", "new to", "Haskell too!"]
您可以通过将
isInfixOf
函数映射到字符串列表上来实现这一点,如下所示:
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
你期望的回报类型是什么?一个布尔值列表,告诉你这个字符串是否是列表中每个字符串的中缀?小文体注释,isInfixOf
通常被使用。。。嗯,中缀(不是因为它谈论中缀的东西,而是因为它在语法上是如何工作的)。所以你通常会看到“new”`isInfixOf`“我是哈斯克尔的新手”
。对于答案,您可能会看到它被用作一个部分,例如any(“new”`isInfixOf`)[…]