如何在Haskell中返回长度为n的列表的前n-1个元素?

Tur*_*ion -1 haskell list tail

我知道tail函数返回列表的最后n-1个元素(其中n是列表的长度),所以我定义了自己的"cotail"函数来返回前n-1个元素:

cotail = (reverse . tail . reverse)
Run Code Online (Sandbox Code Playgroud)

这是最好的方法,还是有内置函数或更聪明的方法来实现这一目标?

mhw*_*bat 7

正如其他人所说,init正是你所寻找的.但是这里是你如何回答"是否有一个Haskell函数做X?"的问题.一般来说:

  1. 找出你想要的函数的类型签名是什么.在这种情况下,我们期望类型签名[a] -> [a].

  2. 搜索hooglehayoo.如果您没有找到它,请尝试另一个.通常,输入参数的顺序是否完全正确无关紧要,但您可能需要进行实验.

刚刚在Hayoo上进行搜索,init显示为我的第三个结果.


fjh*_*fjh 5

我相信你在寻找init.