だから私はこの機能を持っています:
(define (try try-block catch-block finally-block)
; Implements try/catch/finally like in most other languages
)
(lambda () ...)何度も何度も言う必要を避ける「ヘルパー」マクロを作成したいと思いsetますsetq。
(define-macro (tryq try-block catch-block finally-block)
(try
(lambda () (eval try-block))
(lambda () (eval catch-block))
(lambda () (eval finally-block))))
ただし、lambdaはその引数を遅らせるため、上記のプログラムは機能しません。try-block内部evalは a の内部にあるため、評価されるまでには空lambdaです。
この機能を正しく実装するにはどうすればよいですか?