2010/05/25

syntax-rules: (define-syntax foo (syntax-rules () ((foo (a ...) (b ...)) '((a b) ...))))

これは意外。。
;; http://community.schemewiki.org/?scheme-faq-macros
(define-syntax foo
(syntax-rules ()
((foo (a ...) (b ...)) '((a b) ...))))
(foo (1 2) (3 4 5))
; -> ((1 3) (2 4))
(foo (1 2 3 4 5) (6 7 8 9 10))
; -> ((1 6) (2 7) (3 8) (4 9) (5 10))
(define-syntax foo
(syntax-rules ()
((_ (a ...)(b ...) ...)
'(((a b) ...) ...))))
(foo (1 2)(3 4)(5 6 7))
; -> (((1 3) (1 4)) ((2 5) (2 6) (2 7)))
view raw foo.scm hosted with ❤ by GitHub


プログラミングGauche

0 件のコメント:

コメントを投稿