Valid Macro Recursion
(defmacro or* (&rest args)
`(if (null ‘,args) nil
(let ((temp ,(car args)))
(if temp temp
(or* ,@(cdr args))))))
(or* a b) expands into
(let ((temp a))
(if temp temp
(let ((temp b))
(if temp temp nil))))
Previous slide
Next slide
Back to first slide
View graphic version