aboutsummaryrefslogtreecommitdiffstats
path: root/examples/impure-concept.milch
diff options
context:
space:
mode:
Diffstat (limited to 'examples/impure-concept.milch')
-rw-r--r--examples/impure-concept.milch12
1 files changed, 12 insertions, 0 deletions
diff --git a/examples/impure-concept.milch b/examples/impure-concept.milch
new file mode 100644
index 0000000..893b29e
--- /dev/null
+++ b/examples/impure-concept.milch
@@ -0,0 +1,12 @@
+; What color is your function?
+; Impure functions are functions that can call both pure and impure functions.
+; Pure functions can only call pure functions.
+; Impure function names end in an exclamation mark (!) by convention.
+; The top-level context is impure but has special rules
+; related to `import!`, `let!`, and other builtins.
+
+; pure function
+(let! f (\[x] x))
+
+; impure function
+(let! g! (\![x] (print! x)))