Conrad Barski の本「The Land of Lisp」から Lisp を学んでいます。今、私は最初のつまずきにぶつかりました。ここで、著者は次のように述べています。
このように自分自身を呼び出すことは、Lisp で許可されているだけでなく、しばしば強く推奨されます
リスト内のアイテムをカウントする次のサンプル関数を示した後:
(defun my-length (list)
(if list
(1+ (my-length (cdr list)))
0))
my-length
100 万個の項目を含むリストでこの関数を呼び出すと、スタック オーバーフロー エラーが発生します。したがって、Lisp でそれほど長いリストを持つことを期待することは決してないか (したがって、私の使用例は役に立たないかもしれません)、またはそのような長いリスト内の項目をカウントする別の方法があります。これに光を当てることができますか?(ちなみに、私は Windows で GNU CLISP を使用しています)。