自己的版本关于真假问题的修改

本文通过定义宏和递归函数展示了LISP语言的特点。包括如何使用宏来打印表达式并递归处理列表,定义逻辑判断及数值运算,并实现了简单的数值表示和判断逻辑。

(mymachine   (

 

(defmacro  demoinside  (expr)

 

(print  expr)

 

)

 

(defmacro  mymachineinside  (exprs)

 

`(if  ,(eq  exprs  nil) 

 

      nil

 

     (progn

 

         (print (demoinside ,(car  exprs)) )

 

         (mymachineinside  ,(cdr  exprs) )

 

      )

 

)

 

)

 

(mymachineinside   (

 

(defmacro  demo  (expr)

 

(print  expr)

 

)

 

(defmacro  mymachine  (exprs)

 

`(if  ,(eq  exprs  nil) 

 

      nil

 

     (progn

 

          (demo ,(car  exprs)) 

 

         (mymachine  ,(cdr  exprs) )

 

      )

 

)

 

)

 

(setq  true  

 

   (lambda (u v)

 

         u

 

   )

 

)

 

(setq  false  

 

   (lambda (u v)

 

         v

 

   )

 

)

 

(setq  myif  

 

    (lambda  (condition )

 

            (lambda (then  else)

 

                   (condition  then  else) 

 

            )

 

    )

 

)

 

( (  myif   true)   'a    'b )

 

( (  myif   false)   'a    'b )

 

(setq  zero 

 

      (lambda  (s  z)

 

            z

 

      )

 

)

 

(setq  one

 

       (lambda (s  z)

 

           (s  z) 

 

       )

 

)

 

(setq  two

 

       (lambda (s  z)

 

           (s (one s  z) ) 

 

       )

 

)

 

(setq  three

 

       (lambda (s  z)

 

           (s (two s  z) ) 

 

       )

 

)              

 

(setq  wrapvalue

 

      (lambda ( step)

 

         (lambda (u  v)

 

            (step   u  v)

 

         )

 

      )

 

)

 

 

(setq   iszero

        (lambda (n)

            (n  (lambda (x) true)  false)

        )

)

 

( (myif   (iszero  zero)  )  'a  'b)

( (myif   (iszero  one)  )  'a  'b)

( (myif   (iszero  two)  )  'a  'b)

( (myif   (iszero  three)  )  'a  'b)

 

 

))

 

))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值