From e529e0e48c999fccb216bd3f3bc948abe22dbe76 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 6 Dec 2022 17:37:43 +0200 Subject: Clean up examples, stdlib --- examples/impure-concept.milch | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'examples/impure-concept.milch') 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 -- cgit v1.3