だから私はこの機能を持っています:
(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
です。
この機能を正しく実装するにはどうすればよいですか?