aboutsummaryrefslogtreecommitdiffstats
path: root/examples/effects-concept.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/effects-concept.lisp')
-rw-r--r--examples/effects-concept.lisp19
1 files changed, 19 insertions, 0 deletions
diff --git a/examples/effects-concept.lisp b/examples/effects-concept.lisp
new file mode 100644
index 0000000..efca43e
--- /dev/null
+++ b/examples/effects-concept.lisp
@@ -0,0 +1,19 @@
+; FUNCTIONS
+
+(let prompt-input (\[]
+ (let p "> ")
+ (do get-user-input "prompted" p)))
+
+; SIGNAL HANDLERS
+
+(on user-input (\[msg s]
+ (match msg
+ "prompted" (batch [
+ (do print-line (fmt "You entered: %%" [s]))
+ (prompt-input)])
+ (batch [
+ (do fatal-error (fmt "error: unknown signal %%" [msg]))]))))
+
+;; ENTRYPOINT
+
+(prompt-input)