从Haskell中的列表中删除第一个和最后一个元素

Nob*_*ong 9 haskell list

我正在写一个小函数,可以帮助我摆脱列表的第一个和最后一个元素.这就是我想要做的:

>firstLast::[a]->[a]
>firstLast [x] = [ ]
>firstLast h:t = [i|i!= head[a] || i!= last[a]]
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我在这里尝试使用列表推导,但显然我没有正确使用它.

Ben*_*ten 18

为什么不呢?

firstLast::[a]->[a]
firstLast [] = []
firstLast [x] = []
firstLast xs = tail (init xs)
Run Code Online (Sandbox Code Playgroud)

  • 简化为`firstLast xs @(_:_)= tail(init xs); firstLast _ = []` (2认同)