[Mew-dist 15493] Re: 弱気

Shun-ichi GOTO gotoh at example.com
2000年 12月 14日 (木) 20:23:59 JST


>>>>> at Thu, 14 Dec 2000 19:36:19 +0900
>>>>> kazu == Kazu Yamamoto (山本和彦) <kazu at example.com> said,

> それはそうと、defsubst の副作用って何があるんでしたっけ? 
> 前に聞いたような気がするけど忘れた。

kazu> info より:

副作用とはそーゆーもののことを呼んだのですか。:-(
引用された文章はinline 展開全般の(defun に対する)デメリットであり
defmacro にも全く同じ事がいえますよね。
加えていうならば macro の方が、引数が複数箇所に展開される事があり得る分、
副作用は多いですし。

ex.    ... 全然よい例ではないが.
  (defmacro foo (a)
    `(let ()
       (insert ,a)
       (message ,a)))

  (let ((str "string"))
    (foo (setq str (concat str "-prefix"))))


mew-flet のような special-form (ぽいの)を作るのはmacro にしか出来ません
が、ただのinline 定義として見た場合のmacro に対する defsubst のデメリッ
トは、引数の変数分 varbind が余計に発生してしまう事くらいかなぁと思うの
ですが、他になんか障害があったかな?

--- Regards,
 Shun-ichi Goto  <gotoh at example.com>
   R&D Group, TAIYO Corp., Tokyo, JAPAN



Mew-dist メーリングリストの案内