gpt4 book ai didi

algorithm - 算法中的 Haskell "as patterns"

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:41:14 27 4
gpt4 key购买 nike

compress是一个删除列表元素的连续重复项的函数。

compress (x:ys@(y:_))
| x == y = compress ys
| otherwise = x : compress ys
compress ys = ys

现在,不是 x:ysy:_ 的模式相同在(x:ys@(y:_)) ?如果是,那么这个函数是如何正确执行的?

最佳答案

不,它们不一样。 @ 符号用于为参数命名并匹配 @ 符号后的模式。

在您的示例中,ys(y:_) 的同义词。把它写成 (x:(ys@(y:_))) 会更清楚。 x 是列表的第一个元素,y 是列表的第二个元素,ys 是没有第一个元素的列表 x.

关于algorithm - 算法中的 Haskell "as patterns",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41074928/

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