📜  haskell 获取列表的最后一个元素 - Haskell (1)

📅  最后修改于: 2023-12-03 15:15:28.599000             🧑  作者: Mango

Haskell - 获取列表的最后一个元素

在Haskell中,获取列表的最后一个元素非常简单。你可以使用标准库last函数,也可以使用模式匹配。

使用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列表的最后一个元素的两种方法。你可以根据你的需求选择其中一种方法。