以此类推
但是停止条件是什么呢?
我知道了,在类型上是惰性的无限循环的,但是在实际求值上 fmap 不会对叶子节点递归(但叶子节点仍然有一个不动点无穷的类型)
以此类推
但是停止条件是什么呢?
我知道了,在类型上是惰性的无限循环的,但是在实际求值上 fmap 不会对叶子节点递归(但叶子节点仍然有一个不动点无穷的类型)
Term
可以想象 Term 在类型上是无限洋葱,用 out 剥了一层皮还是那个洋葱本身。对于实际这个类型的数据,程序在跑的时候递归会停止在叶子节点,对叶子节点进行 fmap 是没有效果的。
自底向上
深度优先?
需要对 Expr 数据类型进行适当的修改,以使其具有更加泛化的表达能力
此处并没有说明白为什么参数化能解决问题,为什么参数化了编译器就能自动完成这件事?
Y-组合子
这种特性
参数化的 Expr a 表达任意嵌套
apply 函数将负责所有平凡情况的处理
可以添加新的操作而不用重复写往下递归数据结构的函数
书写十分无趣
每一种类似的处理都要写类似的递归过程
~兼ねる(かねる)
否定
~からこそ
看到这里