![]() |
1
11
什么时候?
这个问题(以及为什么是二次的原因)是对于递归调用,这会创建一个嵌套的迭代器链
假设
此外,每个递归调用都会创建一个新的对象实例(
在一个
尾声位置
,F#编译器/库进行优化。它“取代”了电流
相关的。
同样的问题也在平面设计中讨论过
interesting paper about it
(他们的名字是
|
![]() |
2
3
我不知道你在找什么样的答案。如您所注意到的,注释与编译器的行为不匹配。我不能说这是一个注释与实现不同步的实例,还是它实际上是一个性能缺陷(例如,规范似乎没有提出任何特定的性能要求)。 但是,理论上编译器的机器应该可以生成一个在线性时间内对示例进行操作的实现。实际上,甚至可以使用计算表达式在库中构建这样的实现。下面是一个粗略的例子,主要基于托马斯引用的论文:
注意我的
还要注意,这里有一个时空折衷-嵌套迭代器
|
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 3 年前 |
|
Dansih · .Net核心自定义身份验证方案 3 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 3 年前 |