diff options
| author | nodist <kevin.comas.git@gmail.com> | 2026-06-09 10:32:38 -0400 |
|---|---|---|
| committer | nodist <kevin.comas.git@gmail.com> | 2026-06-09 10:32:38 -0400 |
| commit | a13b72d789c6e2ee3d94bd1b19aad3dda0aea3c3 (patch) | |
| tree | 218fe41676c6a103410fc423d7c3b5c9f3da48ca /docs/type_system/fn.md | |
| parent | 4da9de3213a28c7e17945168acdb06308bb41df8 (diff) | |
inline fn defs
Diffstat (limited to 'docs/type_system/fn.md')
| -rw-r--r-- | docs/type_system/fn.md | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/docs/type_system/fn.md b/docs/type_system/fn.md deleted file mode 100644 index 1bf88c5..0000000 --- a/docs/type_system/fn.md +++ /dev/null @@ -1,110 +0,0 @@ -# Fn - ---- - -```text -Fn_class `alias Enum[ - .unknown; .incomplete; .native - .task; process; .generator; .iterator; .closure; - .bound; - .regex -] - -Fn[Fn_class; RETURN_TYPE; Collection[ARGS]; STATE; List] - -Fn[Fn_class; RETURN_TYPE; ARGS...] -Fn[RETURN_TYPE; ARGS...] -Fn[Fn_class; ARGS...] -Fn[ARGS...] -``` - -# Function Classes - -## Unknown - -Placeholder before evaluation - -## Incomplete - -A function with an incomplete type, type checking occurs at invocation - -## Native - -Native function wrapper - -## Task - -A queue-able function in a process or iterator - -## Process - -A list of tasks with state - -## Generator - -A function for creating an iterator - -## Iterator - -A task creator with state, cannot take arguments, can be called until done - -## Closure - -A task creator with state that can take arguments - -## Bound - -A function with some arguments already set - -## Regex - -Regular Expression - -# Returning - -## \`return - -## Transient Union Return Chaining - -# Iterating - -## \`yield - -Yielding wraps the value in the transient union `Next` - -Return `Void` to stop iteration - -```text -fn : Fn[n] $ ( @ 1 < n {[x] `yield 2 * x; n +: 1 } ) -it : fn `sync 10 -// invoking -@ it {[v] `log v } // 2 4 6 8 10 12 14 16 18 20 -// same as above -@ { - # `sync it { - .value {[v] `log v } - .done { `break } - } -} -``` - -# Calling - -## \`async - -Asynchronous call - -```text -task : `async fn -value : `await task -``` - -## \`sync - -Synchronous call - -If the callee is a process, an inline await with async is used - -```text -fn `sync args // can be turned into `await fn `async args -``` |
