enriched lambda ( IF transform ->complete 未完全形式化)

本文通过具体的函数式编程示例,展示了如何使用 Lisp 风格的语言定义布尔值、条件判断及自然数,并实现了简单的递归逻辑。文章深入探讨了高阶函数的应用,包括条件表达式的抽象和自然数的递归定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(setq  true 
   (lambda (u)
       (lambda (v)
          u
       )
   )
)

(setq  false 
   (lambda (u)
       (lambda (v)
          v
       )
   )
)

 


(setq  myif 
    (lambda  (cond)
            (lambda (then)
                (lambda  (else)
                   (funcall (funcall  cond  then)  else)
                 )
            )
    )
)
                      

(funcall (funcall (funcall  myif   true)   'a )   'b )
(funcall (funcall (funcall  myif   false)   'a )   'b )

                     

 


(setq  zero  (funcall (lambda (n)(lambda()n))  false) )
(setq  one   (funcall (lambda (n)(lambda()n))  true ) )
(setq  incr  (lambda (x ) (lambda ()  (funcall x)  )))

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

(setq  iszero
   (lambda (n) 
             (funcall  n )
   )
)

(funcall (funcall (funcall  myif   (funcall  iszero (funcall (funcall nature zero ) 0)))   'a )   'b )
(funcall (funcall (funcall  myif   (funcall  iszero (funcall (funcall nature one ) 1)))   'a )   'b )
(funcall (funcall (funcall  myif   (funcall  iszero (funcall (funcall nature one ) 2)))   'a )   'b )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值