diff options
Diffstat (limited to 'examples/impure-concept.milch')
| -rw-r--r-- | examples/impure-concept.milch | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/examples/impure-concept.milch b/examples/impure-concept.milch index c767914..75c3bb7 100644 --- a/examples/impure-concept.milch +++ b/examples/impure-concept.milch @@ -5,8 +5,21 @@ ; The top-level context is impure but has special rules ; related to `import`, `let`, and other builtins. -; pure function +; this is a pure function (let f (\[x] x)) -; impure function -(let g! (\![x] (print! x))) +(f 10) ; works + +; this is an impure function +(let g! (\![x] (println! x))) + +(g! "foo") ; works + +; this is a pure function that tries to call an impure function +(let h (\[x] (g! x))) + +(h "bar") +; error: cannot call impure function in pure context +; when calling function g! at examples/purity-test.milch:19:15 +; in a function definition at examples/purity-test.milch:19:12 +; when calling function h at examples/purity-test.milch:21:1
\ No newline at end of file |
