【发布时间】:2015-07-17 21:15:13
【问题描述】:
我正在尝试获取列表中元素的索引。
但是我遇到的问题是元素不在列表中。
我在想也许尾递归是有序的,但我不确定如何去做。
whatIndex sought [] = -1
whatIndex sought (a:xs) =
if sought == a
then 0
else 1 + whatIndex sought xs
编辑:
当它不在列表中时,它应该返回-1
例子:
whatIndex 3 [1,2,3] == 2
whatIndex 3 [0,1,2] == -1
编辑: 能够让它工作。
【问题讨论】:
-
您熟悉累加器的概念吗?一个工作函数(通常命名为
go)? -
我了解累加器的概念,但不了解工作函数。
-
有什么问题?当元素不在列表中时,您希望发生什么?
-
@KelseyAbreu 通常当某些事情可能失败(例如,找不到元素)时,该函数将返回 Maybe。
-
@KelseyAbreu 如果您回答了自己的问题,您应该发布您发现的答案作为答案,并认为该答案是正确的。 StackOverflow 的目标只是部分回答问题;另一部分是创建一个对未来有类似问题的访问者有用的工件。