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

Re: [bep] learning lisp: defun



済みません、ちゃんと読んでませんでした。
坂本さん、指摘して下さってありがとうございます。

>> >  (defun (x) (* x 2))
>> > と書いた場合、
>> > (x)が「引数リスト」、
>> > (* x 2)が「定義本体」
>> > と考えていいですか?
>> 
>> そのとおりです。

全然そのとおりじゃありませんね。上の defun は文法違反です。関数名があ
りません。正しくは (defun my-function (x) (* x 2)) ですね。これなら

my-function が関数名
(x) が引数リスト
(* x 2) が定義本体

です。もちろん my-function の部分はシンボルなら何でもかまいません。な
んなら (defun x (x) (* x 2)) なんてこともできますよ。

調子にのってもっとややこしい例を。

(defun n (n) (if (= n 1) 1 (* n (n (1- n)))))

引数に正の整数(小さめの方がいい)を与えて下さい。

-- 
TAKAHASHI Naoto
ntakahas@...
http://www.m17n.org/ntakahas/