Haskell 1级问题,感谢解答



我是Haskell的新手,因此需要一些帮助,我想这对你们来说很容易。我正试图使一个功能,做相同的使用"!!"对于索引,但是索引应该从1到列表的长度。这就是我到目前为止所拥有的,帮助函数"numberList"以及主要功能"ele">

numberList :: [a] -> [(a, Int)]
numberList x = zip x [1..10]
ele :: Int -> [a] -> a

最终结果应该如下所示:

ele 2 [3,4,5,6] = 4

我已经尝试了一些不同的东西与模式匹配,但它似乎不工作。我该何去何从?

考虑下面两个例子:

ele 1 [1,2,3] = 1
ele 2 [3,4,5,6] = 4

在第一种情况下,因为数字是1,所以返回列表的头部。简单。

ele :: Int -> [a] -> a
ele 1 (x:_) = x

我们需要把2变成1。很简单,减去1

但是您还需要将4放到列表的头部。ele 1 [4, 5, 6]将方便地给你你正在寻找的结果。这个递归可能看起来像下面这样,但是为了不给你做作业,我将让你填空。

ele :: Int -> [a] -> a
ele 1 (x:_) = x
ele n (x:xs) = ele (n-1) ?? 

相关内容

  • 没有找到相关文章

最新更新