|
0
|
| Joseph Sible-Reinstate Monica · 技术社区 · 7 年前 |
|
1
18
函数
这个
所以我们可以开始解开
自从
现在应用
QED! |
|
|
2
12
给定一个函数
我们可以把它提升到一个连续的函数,切换顺序:
这个变换是一个逆变函子,也就是说,它通过切换其顺序与函数合成相互作用:
我们可以用同样的方法将提升函数再次提升为叠加连续函数,并将顺序切换回:
将两个逆变函子叠加,我们得到一个(协变)函子:
在你的例子中,这正是被逆转的转换
|
|
3
2
让我们试着从一个基本的角度来理解这段代码。有人想知道它到底有什么用?
这里我们用过
lambda lifting
恢复
那是因为
因此,它只是做了一个左折叠会做的事情,
所以我们去了最深处
因此,它确实将颠倒的第一个列表与第二个列表分开。它也不安全;它遗漏了一个条款:
(更新:) duplode(和Joseph Sible)的答案对lambda提升有点不同,以一种更适合任务的方式。事情是这样的:
那么
简单。:)翻动两次根本不是翻动。 |
|
4
2
让我们从一些装饰性的调整开始:
虽然我们可以合理地预期
既然我们对
注意我们是如何从
最后一步是注意
这最终让我们找到了我们想要的:
|
|
5
2
user11228628's answer 让我明白了。以下是我在阅读时的一些见解,以及一些逐步的转变。 洞察力
从第一个代码块到第二个代码块的完整转换
拉
代替
拉
拉
自从
内联
β-减少
简化
拉取有效函数的理由
|