gpt4 book ai didi

haskell - Haskell 中展开器类型的理由是什么?

转载 作者:行者123 更新时间:2023-12-01 07:09:41 25 4
gpt4 key购买 nike

unfoldr :: (b -> Maybe (a, b)) -> b -> [a] 的文档中给出的示例:

unfoldr (\b -> if b == 0 then Nothing else Just (b, b-1)) 10

可以很容易地用冗余对编写:
unfoldr (\b -> if b == 1 then Nothing else Just (b-1, b-1)) 11

什么 unfoldr需要一对 (a,b)为了?为什么它的类型不是 (a -> Maybe a) -> a -> [a] ?

最佳答案

带类型的函数

(a -> Maybe a) -> a -> [a]

将输出列表元素类型限制为与贯穿生成过程的状态相同。 unfoldr更通用,因为它允许使用独立类型的状态。

关于haskell - Haskell 中展开器类型的理由是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35751328/

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