summaryrefslogtreecommitdiffstats
path: root/samples
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2022-01-29 17:58:41 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2022-01-29 17:58:41 +0200
commitd2c46077f56c3b0a8dd7c34924c3ccb80fed892b (patch)
tree1a11e00bfd96a95e3b7313fa7620f734c70d183d /samples
parent12dbaa90ae2f8c43fd69caaf7d1665ca0182b962 (diff)
Add debug flag, phrase handling words
Diffstat (limited to 'samples')
-rw-r--r--samples/comparisons.sample2
-rw-r--r--samples/eval.sample14
-rw-r--r--samples/list.sample17
-rw-r--r--samples/modulo.sample5
-rw-r--r--samples/recursion.sample7
5 files changed, 45 insertions, 0 deletions
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 .