(define-macro (teoku-let binds . body) `(let ,(map (lambda (ls) (cons (car ls)'("ておくれ"))) binds) ,@body)) (teoku-let ((wasao 68) (gentoo 'linux) (kumamoto "熊本")) (print wasao) (print gentoo) (print kumamoto)) ;; ておくれ ;; ておくれ ;; ておくれ
syntax-rules
(define-syntax teoku-let (syntax-rules () ((_ () body ...) (let () body ...)) ((_ ((var val) x ...) body ...) (let ((var "ておくれ")) (teoku-let (x ...) body ...))))) (teoku-let ((wasao 68) (gentoo 'linux) (kumamoto "熊本")) (print wasao) (print gentoo) (print kumamoto)) ;; ておくれ ;; ておくれ ;; ておくれ
0 件のコメント:
コメントを投稿