Refocus manual on public language usage

This commit is contained in:
2026-08-14 08:17:25 +09:00
parent e0a9a8efb7
commit e0970acdcc
41 changed files with 611 additions and 1982 deletions
+10 -20
View File
@@ -1,27 +1,17 @@
# 命名規約
具体値と抽象値がグラデーションになるため、大文字・小文字による厳密な意味分けは設けない。
identifier の大文字・小文字に言語上の意味はない。
値、constraint、schema、派生設定はいずれも同じ式として扱われる。
ただし、読みやすさのために慣習を定める。
読みやすさのため、次の命名を推奨する。
## 推奨規約
- object 値: `lower_snake`
- 関数: `lowerCamel`
- 組み込み型・抽象的な制約名: `UpperCamel`
例:
- object value: `lower_snake`
- function: `lowerCamel`
- primitive、schema、抽象的な constraint: `UpperCamel`
```dcdl
IPv4Address
MyConfig
new_config
mkConfig
Port = Int & >= 1;
Service = { port = Port; };
service = { port = 8080; } as Service;
mkService = (port: Port) => { port = port; };
```
## 厳密な規則にしない理由
この言語では、値・制約・スキーマ・派生設定が同じ式体系に乗る。
そのため、ある名前が「具体値」か「抽象的な制約」かは文脈によってグラデーションになる。
大文字なら型、小文字なら値、のような厳密な規則を設けると、実際の利用に対して過剰に硬くなる可能性がある。