문서 보기역링크PDF로 내보내기맨 위로 이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요. # defmacro [[macroexpand]] 일어나는 과정을 확인하는 데 도움이 되는 도구 <code clojure> (defmacro if-not [condition expression] (list 'if condition nil expression)) </code> <code clojure> (defmacro if-not ([condition expression] (list 'if condition nil expression)) ([condition expression2 expression3] (list 'if condition expression3 expression))) </code> ### when <code clojure> (defmacro when (1) "Evaluates test. If logical true, evaluates body in an implicit do." {:added "1.0"} (2) [test & body] (3) (list 'if test (cons 'do body))) (4) </code> 1. [[defmacro]]를 사용하여 [[when]]이라는 [[매크로]]를 만든다 2. 언어의 어느 버전에 추가되었는지를 나타내는 맵이다 3. 논리적 검사식을 [[test]] 인수로 받고 식의 본문을 나머지 인수들인 [[body]]로 받았다 4. 이것은 [[if]] 문 안에 test 인수를 넣고 body 인수를 [[do]]로 감싼다. 여기서 do는 출력과 같은 [[부수 효과]]를 내는 식을 평가한다. open/defmacro.txt 마지막으로 수정됨: 2022/02/17 02:22저자 127.0.0.1