From 649319b1dafb130801638c5a156e37d9e865ba5c Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Sat, 29 Jan 2022 23:11:03 +0200 Subject: Implement strings as phrases of chars --- samples/char.sample | 9 +++++++++ samples/list.sample | 5 ++++- samples/modulo.sample | 15 +++++++++++---- 3 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 samples/char.sample (limited to 'samples') diff --git a/samples/char.sample b/samples/char.sample new file mode 100644 index 0000000..05e2b9a --- /dev/null +++ b/samples/char.sample @@ -0,0 +1,9 @@ +define up unphrase ; +define p phrase ; + +define hello + $name ! + '[ "Hello " up $name @ up " 👋" up '] p + $name forget ; + +"Jan" hello s. diff --git a/samples/list.sample b/samples/list.sample index b3fc947..c0fa5da 100644 --- a/samples/list.sample +++ b/samples/list.sample @@ -21,4 +21,7 @@ define .. [ 2 3 ] 1 prepend . [ 2 3 ] 4 append . -[ 1 2 3 ] pop .. \ No newline at end of file +[ 1 2 3 ] pop $1 ! pop $2 ! pop $3 ! +$1 ? +$2 ? +$3 ? diff --git a/samples/modulo.sample b/samples/modulo.sample index 235d135..b093015 100644 --- a/samples/modulo.sample +++ b/samples/modulo.sample @@ -1,5 +1,12 @@ +define decrement + dup $decrement_var ! + @ 1 - $decrement_var @ ! + $decrement_var forget ; + 10 $idx ! -[ $idx @ dup 0 gt? ] - [ 2 mod 0 eq? . - $idx @ 1 - $idx ! ] loop -drop \ No newline at end of file +[ $idx @ dup 0 gt? ] -- while idx > 0 + [ 2 mod 0 eq? -- print "even" if even, "odd" if odd + [ "even" s. ] + [ "odd" s. ] cond + $idx decrement ] loop -- decrement idx by 1 +drop -- cgit v1.3