On Fri, May 29, 2015 at 3:10 AM, Jinsong Liang <jinsongli...@gmail.com> wrote: > Thank you Michele! This is a nice example.
Nice but maybe not very useful: (apply-syntax or (#f (+ 1 2) (print "hello"))) is just a longer and more cumbersome version of (or (#f (+ 1 2) (print "hello"))) A far more valuable macro is the following: (define-macro apply-any (lambda (_ lst) (eval `(cons ',_ ,lst)))) (define l '(#f (+ 1 2) (print "hello"))) (apply-any or l) => 3 (let ((x 9)) (apply-any or '(#f (+ x 1) (print "hello")))) => 10 (apply-any + (list 1 2 3)) => 6 Regards, Michele _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users