4
|
Joseph Sible-Reinstate Monica · 技术社区 · 6 年前 |
![]() |
1
3
您可以将元素的移除转移到尾部,因此无论值如何,我们首先
产量
“
因此,我们首先屈服
上面还可以生成
当然,如果有无限多的
|
![]() |
2
1
您只需结合您的实现:
要在无限列表中获得所需的行为:
|
![]() |
3
1
您的第一个代码段产生了许多代码段中的第一个X,但第三个代码段产生了最后一个X,这就是产生差异的原因。 为了忠实地将第一个片段呈现为右折叠,我们折叠成函数,这样我们可以传递一个状态参数,偶尔更新到列表的新的唯一元素:
这实际上跳过了副本,而不是重新考虑,然后像其他两个答案一样一遍又一遍地忽略它们,这实际上是相互等价的:
我总是用
此技术允许使用
|
![]() |
141592653 · GHCi未推断某些IO操作的实例 7 月前 |
![]() |
Enlico · 运行monad变压器堆产生的任何东西都不是==无? 7 月前 |
![]() |
The Oddler · TVar会阻止读取直到更改吗? 12 月前 |
![]() |
user20102550 · 如何在解析器中使用输入字符串 1 年前 |
![]() |
kesarling · 这个Haskell列表理解是如何评估的? 1 年前 |