我试图找到以字符串列表中的特定字母开头的单词。用户将输入单词列表和起始字母。例如,像:
“桌上铅笔椅书桌笔”“p”
因此,应显示以p
开头的字词,在本例中为pen
和pencil
。我的第一步是使用words
函数将字符串拆分为字符串列表。然后我如何找到每个单词的首字母?函数的类型如下:
--------------Find words Starting with a given letter------------------
findWords :: String -> Char -> [String]
答案 0 :(得分:5)
您使用filter
,
foo string = filter startsWithP (words string)
然后你需要定义
startsWithP :: String -> Bool
更有用的是通用变体
startsWith :: String -> Char -> Bool
可以像"foo" `startsWith` 'f'
一样使用。
答案 1 :(得分:4)
提示#1:在Haskell中,String
被定义为Chars
的列表,因此所有列表函数都可用。
答案 2 :(得分:1)
因为你真的想知道以给定字符串开头的字符串(根据你的帖子)我会使用isPrefixOf
函数:
filter ("p" `isPrefixOf`) ["cats", "dogs", "poor boys"]
据我记得,该函数在Data.List中。