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

来源:互联网 发布:popcom软件下载 编辑:程序博客网 时间:2024/04/30 08:10

(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)

 

 

))

 

))