関数を定義するマクロ
マクロおもしろいなあ。
#!/usr/bin/env gosh
(define-macro (ca..r n)
(string->symbol (make-string n #\a))
`(define (
,(string->symbol (string-append "c" (make-string n #\a) "r"))
lis)
(define (/lis lis i)
(if (> i 0)
(/lis (car lis) (- i 1))
lis))
(/lis lis ,n)))
(ca..r 3)
(ca..r 10)
(print
(caar '((1 . 2) . 3)))
(print
(caaar '(((1 . 2) . 3) . 4)))
(print caaaaaaaaaar)