Add bilingual manual and localized docs routes

This commit is contained in:
2026-08-14 11:16:37 +09:00
parent 3645a2cc2d
commit cda32cc260
85 changed files with 2316 additions and 71 deletions
@@ -0,0 +1,41 @@
# 関数
関数は値を受け取り、値を返す純粋な式である。
## 構文
```dcdl
(value: Int) => value + 1
```
関数呼び出しは通常の呼び出し構文で行う。
```dcdl
let
increment = (value: Int) => value + 1;
in
increment(41)
```
複数の parameter を指定できる。
```dcdl
(input_a: { hoge = Int & >= 0; }, input_b: { fuga = Int; }) =>
{
hoge = input_a.hoge;
fuga = input_b.fuga;
}
```
parameter range は省略できる。
range がある場合、引数は参照された時点で `as` と同じ規則によって検証・絞り込みされる。
## Scope and evaluation
関数は lexical scope を持ち、定義された場所の bindings を参照する。
引数は遅延評価され、関数本体から参照されない引数は評価されない。
再帰的な field または argument の依存は cycle diagnostic になる。
関数は中間値として参照・呼び出しできるが、data として materialize できない。
未適用の関数が materialize 対象に残っている場合は diagnostic になる。
関数値同士の等価性は定義されず、`&` で関数値同士を合成すると conflict になる。