2012年2月22日水曜日

Common Lispでのnamed-let


Common Lispにはnamed-letが無い.
そこでマクロの勉強がてらnamed-letを実装
(Schemeみたいにletって名前で統一はできませんでした…)

(defmacro named-let (name bind body)
  `(labels ((,name ,(mapcar #'car bind) ,body))
     (,name ,@(mapcar #'cadr bind))

     ))

アホみたいにバッククオートとアンクオートだけで挑戦してたので時間を無駄に書けてしまった.
「,@」….ちゃんとググれってことね…

0 件のコメント: