自然数形式系统的实验2

 

(setq  zero  (lambda (s z) z))

(setq  one  (lambda (s z) (funcall  s z) ))

 

(setq  two  (lambda (s z) (funcall s (funcall  s z) )))

 

(setq  three  (lambda (s z) (funcall s (funcall s (funcall  s z) ))))

 

(setq  four  (lambda (s z)(funcall s (funcall s (funcall s (funcall  s z) )))))

 

(setq  five  (lambda (s z)(funcall s (funcall s (funcall s (funcall s (funcall  s z) ))))))

 

(defun chenbing (value)

 

(list  'chenbing value)

 

)

 

(funcall one 'chenbing nil)

 

(funcall two 'chenbing nil)

 

(funcall three 'chenbing nil)

 

(defun  myif (con then else)

 

(funcall con then else)

 

)

 

(defun true (u v)

 

u

 

)

 

(defun false (u v)

 

v

 

)

 

(defun wrap (f)

 

(lambda (n)

 

(cons 'false  (myif (car n) (cdr n) (funcall f (cdr n) ) ) )

 

)

 

)

 

(defun  subone (n)

 

(lambda (s z)

 

(cdr  (funcall n (wrap s ) (cons 'true z) ))

 

)

 

)  

 

(setq  test (subone five) )

 

(funcall test 'chenbing nil)

 

(defun  iszero (n)

 

(funcall n  (lambda(x) 'false) 'true)

 

)

 

(defun  sum  (n)

(myif  (iszero  n)  one  (sum  (subone  n) ) )

)

 

(setq result (sum  zero) )

(funcall  result  'chenbing  nil)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值