【发布时间】:2019-03-26 02:13:59
【问题描述】:
我必须找到列表中两个元素首次出现之间的距离。我们使用的程序是 Haskell。我已经在线了几个小时,试图寻求有关如何开始或解决问题的方向的帮助。请帮忙!
这是我们定义它的方式:
gap :: (Eq a) => a -> a -> [a] -> Maybe Int
这里有一些例子:
> gap 3 8 [1..10]
Just 5
> gap 8 3 [1..10]
Nothing
> gap 'h' 'l' "hello"
Just 2
> gap 'h' 'z' "hello"
Nothing
【问题讨论】:
-
看看
Data.List库 hackage.haskell.org/package/base-4.12.0.0/docs/Data-List.html ,有许多不同的方法来解决此类问题,这取决于您想要/必须从头开始编写自己的函数的程度 -
另外请记住,您可以在 Hoogle hoogle.haskell.org 上按类型查找函数,因此在这种情况下,您需要一个函数,给定一个元素和一个列表,返回其索引:
a -> [a] -> Maybe Int跨度> -
gap 'a' 'a' "a"会是什么?Just 0还是Nothing?gap 'a' 'a' "aa"怎么样?Just 0或Just 1? -
@AaditMShah,第二部分我会联系
elemIndex。
标签: haskell