gpt4 book ai didi

haskell - Haskell 中 seq 如何计算无限列表?

转载 作者:行者123 更新时间:2023-12-02 10:26:01 25 4
gpt4 key购买 nike

据说 Haskell seq 函数强制计算其第一个参数并返回第二个参数。它用于增加表达式求值的严格性。那么下面的代码如何简单地返回 5:

seq [1..] 5

它不应该陷入尝试构建无限列表的困境吗?

最佳答案

seq 计算为弱头范式 (WHNF),这本质上意味着它计算一层数据构造函数。在这种情况下,这意味着它强制评估第一个 cons 单元(: 数据构造函数)。

我有一篇很长的文章解释了这方面的细节,地址为 https://haskell.fpcomplete.com/tutorial/all-about-strictness

关于haskell - Haskell 中 seq 如何计算无限列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54905382/

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