gpt4 book ai didi

haskell - Haskell中恰好有2个元素的模式匹配列表

转载 作者:行者123 更新时间:2023-12-03 23:29:31 26 4
gpt4 key购买 nike

我刚开始学习 Haskell,我正在尝试使用模式匹配来匹配正好有 2 个元素的列表。作为练习,我正在尝试编写一个函数,该函数返回列表中最后一个元素。到目前为止,我发现了这个:

myButLast :: [a] -> a
myButLast [] = error "Cannot take one but last from empty list!"
myButLast [x] = error "Cannot take one but last from list with only one element!"
myButLast [x:y] = x
myButLast (x:xs) = myButLast xs

现在带有 myButLast [x:y] 的行显然是不正确的,但我不知道如何匹配正好有 2 个元素的列表,因为这就是我想要做的。我读了这个( http://learnyouahaskell.com/syntax-in-functions#pattern-matching)页面,它对我帮助很大,但我还没有完全做到……

最佳答案

myButLast :: [a] -> a
myButLast [] = error "empty list"
myButLast [x] = error "too few elements"
myButLast [x, _] = x
myButLast (x: xs) = myButLast xs

这是 99 questions 中的第二个问题.

关于haskell - Haskell中恰好有2个元素的模式匹配列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35378922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com