このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

宣言空間

TypeScriptでは、名前空間とは別に宣言空間というのがあって、そこに名前が登録されるらしい。例えば、型名は「型の宣言空間」内に名前を持つ。

だが、これってやっぱり名前空間だと思う。型の名前空間は、圏の対象集合=0-ホムセットを名前空間だと思ってそこに登録されると思えばよい。値は 1→X in C だから、ホムセット Hom1(1, X) = C1(1, X)を名前空間だと思ってそこに登録される。

名前空間の宣言空間というのがややこしい。実際的には、名前空間は階層的モジュールを定義する。ということはモジュール名の名前空間が「名前空間の宣言空間」となる。モジュール名は、意味領域にはなくて、構文領域にあるから。構文領域側の名前空間が「名前空間の宣言空間」の実体になるだろう。インスティチューションを持ち出さないと解釈できないと思う。

代数的データ型、余代数的データ型とかもそうだけど、インスティチューションとそのモデル圏、モデル圏のなかでの構成(極限や余極限)がないとうまく説明できない。

[追記]entityのcontainerという概念も面白い。TypeScriptは割とマジメに名前構造を考えている。[/追記]