Haskell の構文についての混乱を減らしたいと思っており、Haskell の個別の名前空間が何であるかを知りたいと思っています。
コードで定義された名前スコープではなく、コンパイラが管理するさまざまなシンボル テーブルに対応する構文上の名前空間を意味する名前空間。
例えば:
- 値の名前 (関数名など)
- データ コンストラクター
- 型コンストラクタ
- 型パラメーター (型定義内)
- インスタンス?
- ...?
私が興味を持っているのは、Haskell コードを読むのに苦労しているからです (他のどの言語よりも間違いなく)。なぜなら、自分が何を見ているのか (特にデータ/型コンストラクター/型宣言) を正確に理解するのに苦労することがよくあるからです。
Haskellは、多くの場所で一握りの構文構造(特に<name> <name> ...
)を再利用しているようで、コンテキストに依存しています-コンパイラは私よりもはるかに優れていることがわかりました...