只用函数实现加法

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...

© XGFan 2012-2025