Kazu Yamamoto ( 山本和彦 )
kazu****@iij*****
2005年 7月 26日 (火) 14:40:51 JST
> 私にとって、cons & cell は、再帰プログラムを書くために作られた、構造の様に > 見えます。 その通りです。 > emacs の世界では、再帰的なコードは、余り一般的ではないのでしょうか? 再帰を使いこなせるプログラマが多いかという意味であれば、NO でしょう。 適所に再帰を使う Elisper がいるかという意味であれば、YES です。 いたるところに再帰は発見できますが、単純な while ループで書けるところに は使いません。上限が厳しいからです。たとえば、以下の等差数列は、n = 98 になると、再帰の上限に引っかかってしまいます。 (defun f (n) (cond ((= n 0) 0) (t (+ n (f (1- n)))))) 再帰は、本質的に再帰であるデータ構造を処理するときのみに利用すべきです。 # Mew では、本質的に再帰構造であるメールを解析する際に再帰を利用してい # ます。 > c で、似たような事をしようとすると、次の構造体のポインタを、前の構造体に持 > たせる様な、構造体定義を、わざわざする必要が有りますよね。 そうですが、今時のプログラマは、C++ のクラスライブラリとかを使うので、 自分で定義するという感覚ではないような気もします。 -- 山本和彦