4
|
Joseph Sible-Reinstate Monica · 技术社区 · 6 年前 |
![]() |
1
3
您可以将元素的移除转移到尾部,因此无论值如何,我们首先
产量
“
因此,我们首先屈服
上面还可以生成
当然,如果有无限多的
|
![]() |
2
1
您只需结合您的实现:
要在无限列表中获得所需的行为:
|
![]() |
3
1
您的第一个代码段产生了许多代码段中的第一个X,但第三个代码段产生了最后一个X,这就是产生差异的原因。 为了忠实地将第一个片段呈现为右折叠,我们折叠成函数,这样我们可以传递一个状态参数,偶尔更新到列表的新的唯一元素:
这实际上跳过了副本,而不是重新考虑,然后像其他两个答案一样一遍又一遍地忽略它们,这实际上是相互等价的:
我总是用
此技术允许使用
|
![]() |
trpnd · 如何定义由两个任意单声道变压器组成的单声道变压器? 3 年前 |
![]() |
Fabus1184 · Haskell mapM_不打印 3 年前 |
![]() |
Gotthold · 基于范数约束向量的类型 3 年前 |
![]() |
jian · haskell将另一个函数用作输入参数 3 年前 |
![]() |
Jocafrei · 用Haskell函数实现最大公约数函数 7 年前 |