|
From: | Jinsong Liang |
Subject: | Re: [Chicken-users] unbound variable: or |
Date: | Fri, 29 May 2015 20:25:20 -0400 |
On Fri, May 29, 2015 at 3:10 AM, Jinsong Liang <address@hidden> 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
address@hidden
https://lists.nongnu.org/mailman/listinfo/chicken-users
[Prev in Thread] | Current Thread | [Next in Thread] |