2016-08-10 4 views
1

치킨 계획은 (if (begin))에 해당하는 (when) 매크로를 정의합니다. 난 내 자신의 매크로 중 하나에서이 전화를 할 때 그러나, 그것은 "변수가"정의되지 않은 불평 :Chicken Scheme 매크로에서 "when"매크로를 호출하는 방법은 무엇입니까?

(define-syntax blah 
(ir-macro-transformer 
    (lambda (expr inject compare) 
    (when something 
    (do-something))))) 

Error: during expansion of (blah ...) - unbound variable: when

내가 import이 일을 할 수 있습니까?

+0

'something '이 거짓이면 확장은 무엇입니까? – Sylwester

+0

하나도 없을 것입니다. 그것은'(something (begin (do-something)))'과 동일합니다. 이것은 완벽하게 유효한 코드입니다. –

+0

예, 결과는 코드로 평가됩니다. 'something (something (begin-do-something))')의 결과가'something'이 false 일 때 적절한 코드가 아니며 매크로가 코드가되어야합니다. 위의 값이'# ' – Sylwester

답변

1

같은 대답은 your other question과 같습니다. 단지 (import-for-syntax chicken)이고 모두 설정되었습니다.

+0

큰, 고마워! –