2011年1月30日日曜日

M-99 Q4


このエントリーをはてなブックマークに追加


M-99 マクロ99問
http://common-lisp-users.jp/index.cgi?M-99

問4:Common LispのUNLESSを作成せよ
テーマ:制御構文の自作
(my-unless (> 1 2)
  (print "hello"))
;->
;   "hello"
;=> "hello"

解4:
CL-USER> (defmacro my-unless (condition &body body)
                   `(if (not ,condition)
                        (progn
                             ,@body)))
MY-UNLESS

CL-USER> (my-unless (< 2 1) 10)
10

展開系
(IF (NOT (< 2 1)) (PROGN 10))

0 件のコメント:

コメントを投稿