2011-08-19 3 views
1

특정 매크로는 본문의 각 표현식을 실행하고 각 표현식 사이의 원자를 인터리브하고 결과를 수집합니다.매크로 호출 내에서 컴파일 타임에 여러 표현식을 생성하려면 어떻게해야합니까?

이것은 하드 코딩 된 표현식에서 잘 작동하지만 매크로 호출 본문에 삽입 할 일련의 표현식을 동적으로 생성하려는 경우 매크로 호출의 본문에 삽입 될 표현식이 동적으로 생성되기를 원하면 명확하게 작동하지 않습니다. 매크로 작업을 완료했습니다.

필자가 필요로하는 표현식을 생성하기 위해 내 자신의 매크로를 작성하는 것이 해결책이라고 생각하지만 외부 매크로보다 먼저 평가 될지 잘 모르겠습니다.

나는 이런 식으로 뭔가를 시도했지만 작동하지 않았다하십시오 begin (기법)을 사용하여

(mac genexpr (list) 
    (map (fn (e) `(something ,e)) list)) 
+4

일부 예상 입력과 예상 출력이 있습니까? 당신이 정확히 무엇을하려고 하는지를보기가 어렵습니다. –

답변

5

시도하거나 progn (공통 혀짤배기) 양식을. 당신이 호를 사용하고있는 것 같습니다. appears to name이 구조는 do입니다.

(mac genexpr (list) 
    `(do ,@(map (fn (c) `(something ,e)) list))) 
관련 문제