From d2c46077f56c3b0a8dd7c34924c3ccb80fed892b Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Sat, 29 Jan 2022 17:58:41 +0200 Subject: Add debug flag, phrase handling words --- samples/comparisons.sample | 2 ++ samples/eval.sample | 14 ++++++++++++++ samples/list.sample | 17 +++++++++++++++++ samples/modulo.sample | 5 +++++ samples/recursion.sample | 7 +++++++ 5 files changed, 45 insertions(+) create mode 100644 samples/comparisons.sample create mode 100644 samples/eval.sample create mode 100644 samples/list.sample create mode 100644 samples/modulo.sample create mode 100644 samples/recursion.sample (limited to 'samples') diff --git a/samples/comparisons.sample b/samples/comparisons.sample new file mode 100644 index 0000000..aea6387 --- /dev/null +++ b/samples/comparisons.sample @@ -0,0 +1,2 @@ +define gte? lt? not ; +define lte? gt? not ; diff --git a/samples/eval.sample b/samples/eval.sample new file mode 100644 index 0000000..927621b --- /dev/null +++ b/samples/eval.sample @@ -0,0 +1,14 @@ +define update + $update_var ! + $update_phrase ! + $update_var @ @ $update_phrase @ unphrase + $update_var @ ! + $update_var forget $update_phrase forget + ; + +10 $num ! +[ 1 + ] $num update +$num ? + +[ 5 / ] $num update +$num ? \ No newline at end of file diff --git a/samples/list.sample b/samples/list.sample new file mode 100644 index 0000000..914522f --- /dev/null +++ b/samples/list.sample @@ -0,0 +1,17 @@ +define prepend + $prepend_val ! + $prepend_phrase ! + '[ $prepend_val @ $prepend_phrase @ unphrase '] phrase + $prepend_val forget $prepend_phrase forget + ; + +define append + $append_val ! + $append_phrase ! + '[ $append_phrase @ unphrase $append_val @ '] phrase + $append_val forget $append_phrase forget + ; + +[ 2 3 ] 1 prepend . +[ 2 3 ] 4 append . +[ 1 2 3 ] pop . . \ No newline at end of file diff --git a/samples/modulo.sample b/samples/modulo.sample new file mode 100644 index 0000000..235d135 --- /dev/null +++ b/samples/modulo.sample @@ -0,0 +1,5 @@ +10 $idx ! +[ $idx @ dup 0 gt? ] + [ 2 mod 0 eq? . + $idx @ 1 - $idx ! ] loop +drop \ No newline at end of file diff --git a/samples/recursion.sample b/samples/recursion.sample new file mode 100644 index 0000000..7dc833b --- /dev/null +++ b/samples/recursion.sample @@ -0,0 +1,7 @@ +define factorial +-- Integer -> Integer + dup 0 eq? not + [ dup 1 - factorial * ] + [ drop 1 ] cond ; + +5 factorial . -- cgit v1.3