diff options
Diffstat (limited to 'docs/type_system/function.md')
| -rw-r--r-- | docs/type_system/function.md | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/docs/type_system/function.md b/docs/type_system/function.md index af17b74..ed1cf9d 100644 --- a/docs/type_system/function.md +++ b/docs/type_system/function.md @@ -3,15 +3,16 @@ --- ```text -INVOCATION : UNKNOWN | SYNC | ASYNC -STATELESS : INCOMPLETE | NATIVE | NATIVE_INLINE | PROCESS | GENERATOR | REGEX_GENERATOR +MODE: INCOMPLETE | COMPLETE -STATEFUL : TASK | ITERATOR | CLOSURE | BOUND | REGEX +INVOCATION : SYNC | ASYNC + +STATELESS : NATIVE | NATIVE_INLINE | PROCESS | GENERATOR | REGEX_GENERATOR -FLAGS : INVOCATION | STATELESS | STATEFUL +STATEFUL : TASK | ITERATOR | CLOSURE | BOUND | REGEX -Function[[FLAGS]; Body; RETURN_TYPE; Collection[VAR_LIST; TYPE.SYMBOL]] +Function[[MODE | INVOCATION | STATELESS | STATEFUL]; INVOCATION_LIST; Body; RETURN_TYPE; Collection[VAR_LIST; TYPE.SYMBOL]] ``` ## Type Body Object Definitions @@ -25,7 +26,7 @@ typedef struct { # Alias ```text -Fn[Generic.T; Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Function[[FLAGS]; STATE; List; Generic.T; Collection[VAR_TREE_LIST; TYPE.SYMBOL]] +Fn[Generic.T; Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Function[...] ``` # Inline Definition @@ -37,13 +38,13 @@ Fn[Generic.T; Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Function[[FLAGS]; S # Function Classes -## Unknown +## Incomplete -Placeholder before evaluation +A function with an incomplete type, type checking occurs at invocation its complete types are stored in its `INVOCATION_LIST` -## Incomplete +## Complete -A function with an incomplete type, type checking occurs at invocation +A function with a complete type, its sync/async invocations are stored in the `INVOCATION_LIST` ## Native @@ -95,7 +96,7 @@ Invoked regular expression matcher ## \`yield -Yielding wraps the value in the transient union `Next` +Yielding wraps the value in the transient union `Iteration` Return `Void` to stop iteration |
