ãã¯ãã®å¤æ°ææ
説æç¨ã®ã·ã³ãã«ãªä¾ãæãã¤ããã®ã§ã¡ã¢ã
ä¾ãã°my-orã次ã®ããã«å®ç¾©ããã¨ããã
(define-macro (my-or test1 test2) `(let ((x ,test1)) (if x x ,test2)))
ãããããã§ã¯ã以ä¸ã®å ´åã«æ£ããçµæãè¿ããªãã
gosh> x #t gosh> (or #f x) #t gosh> (my-or #f x) #f
ãªããªãã°ããã®ããã«å±éããã¦ããããã
gosh> (macroexpand '(my-or #f x)) (let ((x #f)) (if x x x))