【问题标题】:Remove the first and the last element from a list in Haskell从 Haskell 列表中删除第一个和最后一个元素
【发布时间】:2013-11-06 00:52:22
【问题描述】:

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

>firstLast::[a]->[a]
>firstLast [x] = [ ]
>firstLast h:t = [i|i!= head[a] || i!= last[a]]

如您所见,我在这里尝试使用列表推导,但显然我没有正确使用它。

【问题讨论】:

    标签: list haskell


    【解决方案1】:

    为什么不只是这个?

    firstLast::[a]->[a]
    firstLast [] = []
    firstLast [x] = []
    firstLast xs = tail (init xs)
    

    【讨论】:

    • 是的..我只是忘记了有一个名为init的函数..谢谢!
    • 简化为firstLast xs@(_:_) = tail (init xs); firstLast _ = []
    • 最后一行可能只是firstLast (x:xs) = init xs