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

Re: [bep] learning lisp



井上です。

Mitsugu SAKAMOTO <mitsugu@...> writes:

> これに便乗してなのですが、関数と変数って読んでいてどう区別しますか?
> Cとかだとすぐわかるきがするのですが、Lispではよく分からない。

Cだと、関数名の後ろには必ず一組の括弧がありますよね。引数リストが入っ
ているかも知れませんが。
lispだと、クオートされていないときは
(要素1 要素2 要素3...)
だったら要素1が必ず関数(マクロのこともあるけど)だと決まっているよう
なものなので、そうやって読んでます。
上のようなリストを評価するとcar(一番左の要素)が関数と見なされるんだと
思ってます。
'(要素1 要素2 要素3...)
だったらクオートされていてこれを評価しても要素1はそういうシンボルなだ
けで関数としては評価されない=関数ではないと。
確かelispのシンボルって関数としての値(関数定義)と変数としての値と、そ
の他いくつかのスロットを最初から持っているんじゃなかったかな。

-- 
                    Koichi Inoue, ARGV
                    E-Mail: inoue@...
                    ICQ UIN: 74900690