Haskell是否有一个函数可以让你找到一个单词的特定元素的数量,即[char],所以“FROG”中的'F'的元素号是0.还有,那个字母出现的字数更多不止一次,这个函数能否返回一个字母位置列表,即“TEETER”中的“E”将是[1,2,4]?
答案 0 :(得分:6)
您要查找的两个功能位于Data.List
,它们是elemIndex
和elemIndices
。
elemIndices :: Eq a => a -> [a] -> [Int]
elemIndex :: Eq a => a -> [a] -> Maybe Int
λ> elemIndex 'F' "FROG"
Just 0
λ> elemIndices 'E' "TEETER"
[1,2,4]
在寻找这样的东西时,记下你想要的类型通常是有帮助的,然后(如果可能的话)概括它。您经常可以通过这种方式在标准库中查找内容。
答案 1 :(得分:1)
将其输入到hoogle
[a]->a->Int
并看到这个
elemIndex :: Eq a => a -> [a] -> Maybe Int
编辑 -
我错过了你问题的第二部分......但是一个类似的hoogle搜索也适用于此。