真假2
来源:互联网 发布:2016最新网络歌曲大全 编辑:程序博客网 时间:2024/04/27 15:29
(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 two
(lambda (s z)
(s (s z) )
)
)
( two formal nil)
(setq three
(lambda (s z)
(s (s (s z) ) )
)
)
( two formal nil)
( three formal nil)
(setq add
(lambda (m n s z)
( m s ( n s z) )
)
)
( add two three formal nil)
(setq zero
(lambda (s z)
z
)
)
( ( myif two) 'a 'b )
( ( myif three) 'a 'b )
( ( myif zero) 'a 'b )
(setq wrapvalue
(lambda ( step)
(lambda (u v)
(step u v)
)
)
)
( (myif (wrapvalue ( two true true) ) ) 'a 'b )
( (myif (wrapvalue ( three true true) ) ) 'a 'b )
( (myif (wrapvalue ( zero true false) ) ) 'a 'b )
))
))