2018年7月11日水曜日

Lispに型はないと思っていたら

 どうしてか、Lispには型がないとばかり思っていた。
 さすがに文字列と数値とかはあるだろうけど、と。

DEF> (type-of :ABC)
KEYWORD
DEF>

 ってやってみて驚いた。
 「:」付きってkeywordという型をなのか。
 あるじゃないか。型。
 以前からよくわからなかった「:」はkeywordという型指定ということになるのか、つまり。もしかしたらリーダーマクロで実装されているんだろうか?

 というか、根本的に勘違いしているじゃないか。

Lispはプログラムの実行時まで呼び出すべき変数のデータ型や関数の実体が決まらない動的束縛(late bindingともいう)の言語である。

竹内郁雄「初めての人のためのLisp [増補改訂版]」