2018年7月3日火曜日

Lispには代入文がないんだね

 ふと気づいた。
 そういえば、Lispには代入という概念がないな、と。
 C言語にしろ、javaとかにしろ「=」で変数に値を代入する代入文の記法が存在する。シェルスクリプトにすら、ある。
 それなのにLispにはそういう記法がない。見たことがないだけかもしれないけど——もちろん変数への値の設定する方法としてset系の関数がある。でもそれはあくまでも関数であって、文法で定義されているわけじゃない。
 そもそも変数への値の代入なんて存在しないんじゃないのか?
 あ、そうか。
 シンボルへの値の束縛(bind)ってそういうことか。シンボルに値を紐づけることがLispでの変数への値の設定なのか。なんとなく、C言語のポインタと値の関係が逆転しているような感じだ。
 へー。
 道理で束縛、束縛とマニュアルにでてくるわけだ。