aboutsummaryrefslogtreecommitdiffstats
path: root/docs/guide/06_importing-operators.md
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-06-03 10:50:20 +0000
committers-ol <s-ol@users.noreply.github.com>2020-06-03 11:04:00 +0000
commit4b8a0f024606ca8c602a4e886767d414995ca0a2 (patch)
tree0477d875efed4bc495827ccf265c1bb44397ce4e /docs/guide/06_importing-operators.md
parentadd loop/recur (diff)
downloadalive-4b8a0f024606ca8c602a4e886767d414995ca0a2.tar.gz
alive-4b8a0f024606ca8c602a4e886767d414995ca0a2.zip
split guide into guide and reference
Diffstat (limited to 'docs/guide/06_importing-operators.md')
-rw-r--r--docs/guide/06_importing-operators.md26
1 files changed, 26 insertions, 0 deletions
diff --git a/docs/guide/06_importing-operators.md b/docs/guide/06_importing-operators.md
new file mode 100644
index 0000000..4321e7a
--- /dev/null
+++ b/docs/guide/06_importing-operators.md
@@ -0,0 +1,26 @@
+Apart from [trace][], there are only very little builtin operators in `alv` -
+you can see all of them in the *builtins* section of the [reference][:/:].
+All of the 'real' functionality of `alv` is grouped into *modules*, that have
+to be loaded individually. *Modules* help organize all of the operators so that
+it is less overwhelming to look for a concrete feature. It is also possible to
+create your own plugins as new modules, which will be covered in another guide
+soon.
+
+Let's try using the [`+` operator][:math/+:] from the [math/][] module. To use
+operators from a module, we need to tell `alv` to load it first: We can load
+*all* the operators from the [math/][] module into the current scope using the
+[import*][] builtin:
+
+ (import* math)
+ (trace (+ 1 2))
+
+prints
+
+ trace (+ 1 2): <num= 3>
+
+Because it can get a bit confusing when all imported operators are mixed in the
+global scope, it is also possible to load the module into its own scope and use
+it with a prefix. This is what the [import][] builtin is for:
+
+ (import math)
+ (trace (math/+ 1 2))