[xyzzy:02491] Common の質問
- Subject: [xyzzy:02491] Common の質問
- From: cake-smd@xxxxxxxxxxxxx
こんにちは、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/