[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:02491] Common の質問



こんにちは、Cakeです。

xyzzy とは直接関係ないのでアレですが質問です。
Common Lisp で、再帰するラムダ式ってどう書けばいいのでしょうか。

'+ と同じ働きをする関数 'my-sum というのを書いてみました。
 ※自宅は FreeBSD なので gcl をいじっていまし。

>(defun my-sum0 (L)
  (if (consp L)
      (if (null (cdr L))
	  (car L)
	(+ (car L) (my-sum0 (cdr L))))
    nil))
MY-SUM0

>(defun my-sum (&rest arg)
  (my-sum0 arg))
MY-SUM

>(my-sum 1 2 3)
6

my-sum0 っていうのを使わないようにするには、いろいろな方法があると思いま
すが、my-sum の中で my-sum0 に相当するλ式を使うのはどうだろうと思ったら
λ式の中で再帰(自分自身を呼ぶ)する方法が分からないことに気づきました。
だって呼ぼうにも名前がないんですよね。

そういうことは可能なのでしょうか?

-- 
Cake (HFC02067@xxxxxxxxxxx)
mailto:cake-smd@xxxxxxxxxxxxx
http://www.ops.dti.ne.jp/~cake-smd/

Index Home