【发布时间】:2014-01-05 15:57:25
【问题描述】:
Haskell 是否有一个函数可以让您找到单词的特定元素的编号,即 [char],因此“FROG”中“F”的元素编号为 0。另外,该字母出现更多的单词呢?不止一次,这个函数能否返回一个字母位置列表,即“TEETER”中的“E”将是 [1,2,4]?
【问题讨论】:
Haskell 是否有一个函数可以让您找到单词的特定元素的编号,即 [char],因此“FROG”中“F”的元素编号为 0。另外,该字母出现更多的单词呢?不止一次,这个函数能否返回一个字母位置列表,即“TEETER”中的“E”将是 [1,2,4]?
【问题讨论】:
您要查找的两个函数在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]
在寻找类似的东西时,写下你想要的类型然后(如果可能的话)概括它通常会很有帮助。您通常可以通过这种方式在标准库中查找内容。
【讨论】:
throwErrnoPath。
把这个输入hoogle
[a]->a->Int
看看这个
elemIndex :: Eq a => a -> [a] -> Maybe Int
编辑-
我错过了你问题的第二部分....但是类似的 hoogle 搜索也适用于此。
【讨论】: