nature (加法计算 多参数变为单一参数)

来源:互联网 发布:js弹出页面窗口 编辑:程序博客网 时间:2024/05/21 04:58

(setq  zero  (funcall (lambda (n)(lambda()n))  nil) )
(setq  one   (funcall (lambda (n)(lambda()n))  'chenbing ) )
(setq  incr  (lambda (x ) (lambda () (cons (funcall one )(funcall x) ) )))

(setq   nature 
(lambda (now )
(lambda (n)
(if  (>  n  0)
    (funcall (funcall  nature  (funcall   incr  now) ) (- n  1) )
      now
)
)
)
)

(funcall (funcall (funcall nature  zero ) 10)  )
(funcall (funcall (funcall nature  zero ) 11)  )
(funcall (funcall (funcall nature  zero ) 12)  )
(funcall (funcall (funcall nature  zero ) 13)  )

(setq  add 
(lambda(  a )
(lambda ( b)
(lambda ()
         (append  (funcall a) (funcall   b)  )
)
)
)
)


(funcall  (funcall (funcall add  (funcall (funcall nature  zero ) 10) )
               (funcall (funcall nature  zero ) 11))) 
(funcall  (funcall (funcall add  (funcall (funcall nature  zero ) 11) )
               (funcall (funcall nature  zero ) 12))) 

原创粉丝点击