只用函数实现加法
type
status
date
slug
summary
tags
category
icon
password
如果不允许使用数值,只能使用函数(过程)。现在已经定义好0和+1操作了。
如何表示1、2、3?如何实现加法?
代换出1
显然,0+1=1
把
zero
带入add-1
对
((zero f) x)
做代换,1就出来了代换出2
显然,1+1=2
把
one
带入add-1
对
((one f) x)
做代换,2就出来了代换出……
显然是不用代换了,我们很容易猜测到,用
f
的调用次数来表示数的大小。加法
观察
add-1
我们写一个
add-0
,其实只用去掉最左侧的f调用即可。我们想要实现的加法,就在
add-0
的基础上,再加一个参数m,想办法把m里面f
调用给拿出来。参照
((n f) x)
,最终Loading...