2011-11-13 70 views
13

是否有一個技巧或前奏函數來測試列表是否包含特定的子字符串/子列表?Haskell:測試列表是否包含特定的「子列表」

xyz :: [a] -> [a] -> Bool 
xyz "hello world" "worl" -> True 
xyz [1,2,3,4,5,6,7,8,1,2,3,4,5] [7,8,1] -> True 

我試圖自己寫一個,但這是一個微不足道的問題,我不想重新發明輪子。

+7

lmhtfy:http://haskell.org/hoogle/?q=[a]+-%3E+[a]+-%3E+Bool –

+0

是否有意在第一種情況下使用'xyz'就好像它的類型是[a] - > [a] - > Bool'並且在第二種情況下就好像它是'[[a]] - > [a] - > Bool'?因爲找到一個允許兩種用法的函數是相當困難的。 – sepp2k

+0

@ sepp2k我的錯!糾正。 – NaN

回答

28

使用來自Data.List的isInfixOf

這些參數是從你所要求的其他方式---它通常是最可讀的使用這樣的功能:"worl" `isInfixOf` "hello world"(返回True)。

相關問題