2008年10月20日月曜日

【CLドリル】7 マクロ


  • (setf place value)にて、place用のS-expを別のところで作って渡してあげるというのができないのが、あたりまえなのだが、ちょっとびっくり。

    (defmacro my-setf (place value)
    `(setf ,(symbol-value place) ,value))

    とかしてあげないといけないようだ。
  • あと、今さらだが、関数は値渡しであり、ラムダリストを通った後は元のシンボル情報にアクセスできないことを再認識した。

    (setq hoge 1)
    (defun s-name (x)
    (symbol-name x))
    (s-name hoge) -> error

  • わかっているようで、わかっていないということが、よくわかった。

次回は、8 リスト処理。こつこつ。

0 件のコメント: