📅  最后修改于: 2023-12-03 15:15:28.599000             🧑  作者: Mango
在Haskell中,获取列表的最后一个元素非常简单。你可以使用标准库last
函数,也可以使用模式匹配。
last
函数接受一个列表作为参数,并返回该列表的最后一个元素。如果列表为空,则会引发异常。
last :: [a] -> a
Prelude> last [1, 2, 3, 4, 5]
5
Prelude> last ["hello", "world"]
"world"
另一种获取列表最后一个元素的方法是使用模式匹配。我们可以使用递归函数从列表的末尾开始,直到找到最后一个元素。
myLast :: [a] -> a
myLast [x] = x
myLast (_:xs) = myLast xs
myLast [] = error "Empty list"
在这个函数中,我们首先检查列表是否只有一个元素。如果是,我们就返回它。否则我们进入下一步,从列表的头部取出第一个元素,然后递归调用myLast
函数。
请注意,我们在列表为空的情况下使用error
函数抛出一个异常。
Prelude> myLast [1, 2, 3, 4, 5]
5
Prelude> myLast ["hello", "world"]
"world"
以上就是获取Haskell列表的最后一个元素的两种方法。你可以根据你的需求选择其中一种方法。