2016-11-07 85 views
2

I(Haskell的新手)想要查找是否存在行(行)中的單詞。我看到了一些功能來實現它,如:ELEM,isInfixOf查找haskell中行內的單詞

Prelude DL> isInfixOf "new" "I am new to Haskell" 
True 

Prelude DL> elem "new" ["I am", "new to", "Haskell"] 
False 

我如何能實現「isInfixOf」上的字符串列表中的每一個字符串。

+0

什麼是你的預期收益類型?一個布爾的列表,告訴是否該字符串是列表中每個字符串的中綴? – mnoronha

+1

小文體筆記,通常使用'isInfixOf' ......好吧,中綴(不是因爲它在談論中綴事物,而是因爲它在語法上是如何工作的)。所以你通常會看到''「new」'isInfixOf'「我是Haskell的新手」''。在答案的情況下,您可能會將它看作一個部分,例如''any(「new」'isInfixOf')[']'' – luqui

回答

4

如果你希望得到正確的:如果你想布爾列表

any (isInfixOf "new") ["I am", "new to", "Haskell too!"] 

map (isInfixOf "new") ["I am", "new to", "Haskell too!"] 
3

您可以通過在像這樣的Strings列表映射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