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
+41
View File
@@ -0,0 +1,41 @@
# Functions
A function is a pure expression that accepts values and returns a value.
## Syntax
```dcdl
(value: Int) => value + 1
```
Use ordinary call syntax to invoke a function.
```dcdl
let
increment = (value: Int) => value + 1;
in
increment(41)
```
A function can have multiple parameters.
```dcdl
(input_a: { hoge = Int & >= 0; }, input_b: { fuga = Int; }) =>
{
hoge = input_a.hoge;
fuga = input_b.fuga;
}
```
A parameter range is optional.
When present, the argument is validated and refined using the same rules as `as` when the argument is referenced.
## Scope and evaluation
Functions have lexical scope and can reference bindings from where they were defined.
Arguments are evaluated lazily, so an argument not referenced by the function body is not evaluated.
Recursive field or argument dependencies produce a cycle diagnostic.
Functions can be referenced and called as intermediate values, but cannot be materialized as data.
An unapplied function remaining in a materialization target produces a diagnostic.
Function equality is not defined, and composing two function values with `&` produces a conflict.