On Fri, May 29, 2015 at 3:10 AM, Jinsong Liang <[email protected]> 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
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users