【发布时间】:2018-10-07 02:24:32
【问题描述】:
我刚刚开始使用 Haskell,所以我正试图围绕“Haskell 的思维方式”展开思考。是否有理由使用模式匹配来解决问题 1 here 基本上是通过展开整个列表并递归调用函数,而不是像 myLast lst = lst !! ((length lst) - 1) 那样直接检索最后一个元素?这看起来几乎是蛮力的,但我认为这只是我对这里的不熟悉。
【问题讨论】:
-
我认为“Haskell 的思维方式”实际上会对这个问题产生误解,因为
myLast显然是片面的——myLast []是什么意思?因此,结果类型应扩大到Maybe a或参数类型应缩小到NonEmpty a,但这可能对您的问题没有多大帮助。 -
在处理列表类型时,head、tail、init 和 last 是你的朋友,但正如前面提到的,在某些其他语言中,列表不如数组有效。 Haskell 中有更好的数据结构。看看stackoverflow.com/questions/9611904/…
标签: haskell