From dc1ef25f1a7f8e36e93928e5b0288e203833e14a Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Fri, 18 Feb 2022 09:39:53 +0200 Subject: Clean up --- samples/area.sample | 7 ----- samples/area.slam | 7 +++++ samples/char.sample | 9 ------- samples/char.slam | 9 +++++++ samples/comparisons.sample | 2 -- samples/comparisons.slam | 2 ++ samples/conditional.sample | 7 ----- samples/conditional.slam | 7 +++++ samples/divbyzero.sample | 1 - samples/divbyzero.slam | 1 + samples/eval.sample | 14 ---------- samples/eval.slam | 14 ++++++++++ samples/interpolation.sample | 2 -- samples/interpolation.slam | 2 ++ samples/list.sample | 27 -------------------- samples/list.slam | 27 ++++++++++++++++++++ samples/loop.sample | 9 ------- samples/loop.slam | 9 +++++++ samples/modulo.sample | 12 --------- samples/modulo.slam | 12 +++++++++ samples/phrase.sample | 1 - samples/phrase.slam | 1 + samples/recursion.sample | 7 ----- samples/recursion.slam | 7 +++++ samples/strliterals.sample | 3 --- samples/strliterals.slam | 3 +++ samples/testing.sample | 61 -------------------------------------------- samples/testing.slam | 61 ++++++++++++++++++++++++++++++++++++++++++++ samples/variables.sample | 13 ---------- samples/variables.slam | 13 ++++++++++ 30 files changed, 175 insertions(+), 175 deletions(-) delete mode 100644 samples/area.sample create mode 100644 samples/area.slam delete mode 100644 samples/char.sample create mode 100644 samples/char.slam delete mode 100644 samples/comparisons.sample create mode 100644 samples/comparisons.slam delete mode 100644 samples/conditional.sample create mode 100644 samples/conditional.slam delete mode 100644 samples/divbyzero.sample create mode 100644 samples/divbyzero.slam delete mode 100644 samples/eval.sample create mode 100644 samples/eval.slam delete mode 100644 samples/interpolation.sample create mode 100644 samples/interpolation.slam delete mode 100644 samples/list.sample create mode 100644 samples/list.slam delete mode 100644 samples/loop.sample create mode 100644 samples/loop.slam delete mode 100644 samples/modulo.sample create mode 100644 samples/modulo.slam delete mode 100644 samples/phrase.sample create mode 100644 samples/phrase.slam delete mode 100644 samples/recursion.sample create mode 100644 samples/recursion.slam delete mode 100644 samples/strliterals.sample create mode 100644 samples/strliterals.slam delete mode 100644 samples/testing.sample create mode 100644 samples/testing.slam delete mode 100644 samples/variables.sample create mode 100644 samples/variables.slam (limited to 'samples') diff --git a/samples/area.sample b/samples/area.sample deleted file mode 100644 index 57bbfbb..0000000 --- a/samples/area.sample +++ /dev/null @@ -1,7 +0,0 @@ -define PI 3.141593 ; - -define area dup * PI * ; -define circumf PI * 2.0 * ; - -10.0 area round . -10.0 circumf round . diff --git a/samples/area.slam b/samples/area.slam new file mode 100644 index 0000000..57bbfbb --- /dev/null +++ b/samples/area.slam @@ -0,0 +1,7 @@ +define PI 3.141593 ; + +define area dup * PI * ; +define circumf PI * 2.0 * ; + +10.0 area round . +10.0 circumf round . diff --git a/samples/char.sample b/samples/char.sample deleted file mode 100644 index 05e2b9a..0000000 --- a/samples/char.sample +++ /dev/null @@ -1,9 +0,0 @@ -define up unphrase ; -define p phrase ; - -define hello - $name ! - '[ "Hello " up $name @ up " 👋" up '] p - $name forget ; - -"Jan" hello s. diff --git a/samples/char.slam b/samples/char.slam new file mode 100644 index 0000000..05e2b9a --- /dev/null +++ b/samples/char.slam @@ -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/comparisons.sample b/samples/comparisons.sample deleted file mode 100644 index aea6387..0000000 --- a/samples/comparisons.sample +++ /dev/null @@ -1,2 +0,0 @@ -define gte? lt? not ; -define lte? gt? not ; diff --git a/samples/comparisons.slam b/samples/comparisons.slam new file mode 100644 index 0000000..aea6387 --- /dev/null +++ b/samples/comparisons.slam @@ -0,0 +1,2 @@ +define gte? lt? not ; +define lte? gt? not ; diff --git a/samples/conditional.sample b/samples/conditional.sample deleted file mode 100644 index 2cb9326..0000000 --- a/samples/conditional.sample +++ /dev/null @@ -1,7 +0,0 @@ -define eq10? - 10 eq? - [ "true" ] - [ "false" ] cond ; - -10 eq10? s. -5 eq10? s. diff --git a/samples/conditional.slam b/samples/conditional.slam new file mode 100644 index 0000000..2cb9326 --- /dev/null +++ b/samples/conditional.slam @@ -0,0 +1,7 @@ +define eq10? + 10 eq? + [ "true" ] + [ "false" ] cond ; + +10 eq10? s. +5 eq10? s. diff --git a/samples/divbyzero.sample b/samples/divbyzero.sample deleted file mode 100644 index 77d211f..0000000 --- a/samples/divbyzero.sample +++ /dev/null @@ -1 +0,0 @@ -10.0 0.0 / . diff --git a/samples/divbyzero.slam b/samples/divbyzero.slam new file mode 100644 index 0000000..77d211f --- /dev/null +++ b/samples/divbyzero.slam @@ -0,0 +1 @@ +10.0 0.0 / . diff --git a/samples/eval.sample b/samples/eval.sample deleted file mode 100644 index 927621b..0000000 --- a/samples/eval.sample +++ /dev/null @@ -1,14 +0,0 @@ -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/eval.slam b/samples/eval.slam new file mode 100644 index 0000000..927621b --- /dev/null +++ b/samples/eval.slam @@ -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/interpolation.sample b/samples/interpolation.sample deleted file mode 100644 index 8baa6df..0000000 --- a/samples/interpolation.sample +++ /dev/null @@ -1,2 +0,0 @@ -"Hello world!" s. -"What's up" "fellow programmer" "%% %%!" s. diff --git a/samples/interpolation.slam b/samples/interpolation.slam new file mode 100644 index 0000000..8baa6df --- /dev/null +++ b/samples/interpolation.slam @@ -0,0 +1,2 @@ +"Hello world!" s. +"What's up" "fellow programmer" "%% %%!" s. diff --git a/samples/list.sample b/samples/list.sample deleted file mode 100644 index c0fa5da..0000000 --- a/samples/list.sample +++ /dev/null @@ -1,27 +0,0 @@ -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 - ; - -define stack-empty? stack-size 0 eq? ; - -define .. - [ stack-empty? not ] - [ . ] loop - ; - -[ 2 3 ] 1 prepend . -[ 2 3 ] 4 append . -[ 1 2 3 ] pop $1 ! pop $2 ! pop $3 ! -$1 ? -$2 ? -$3 ? diff --git a/samples/list.slam b/samples/list.slam new file mode 100644 index 0000000..c0fa5da --- /dev/null +++ b/samples/list.slam @@ -0,0 +1,27 @@ +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 + ; + +define stack-empty? stack-size 0 eq? ; + +define .. + [ stack-empty? not ] + [ . ] loop + ; + +[ 2 3 ] 1 prepend . +[ 2 3 ] 4 append . +[ 1 2 3 ] pop $1 ! pop $2 ! pop $3 ! +$1 ? +$2 ? +$3 ? diff --git a/samples/loop.sample b/samples/loop.sample deleted file mode 100644 index dce412e..0000000 --- a/samples/loop.sample +++ /dev/null @@ -1,9 +0,0 @@ -define , dup . ; - --- load idx value and print it (w/o consume) --- calc idx - 1 and store in idx -10 $idx ! -[ $idx @ 0 gt? ] [ - $idx @ , - 1 - $idx ! -] loop diff --git a/samples/loop.slam b/samples/loop.slam new file mode 100644 index 0000000..dce412e --- /dev/null +++ b/samples/loop.slam @@ -0,0 +1,9 @@ +define , dup . ; + +-- load idx value and print it (w/o consume) +-- calc idx - 1 and store in idx +10 $idx ! +[ $idx @ 0 gt? ] [ + $idx @ , + 1 - $idx ! +] loop diff --git a/samples/modulo.sample b/samples/modulo.sample deleted file mode 100644 index b093015..0000000 --- a/samples/modulo.sample +++ /dev/null @@ -1,12 +0,0 @@ -define decrement - dup $decrement_var ! - @ 1 - $decrement_var @ ! - $decrement_var forget ; - -10 $idx ! -[ $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 diff --git a/samples/modulo.slam b/samples/modulo.slam new file mode 100644 index 0000000..b093015 --- /dev/null +++ b/samples/modulo.slam @@ -0,0 +1,12 @@ +define decrement + dup $decrement_var ! + @ 1 - $decrement_var @ ! + $decrement_var forget ; + +10 $idx ! +[ $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 diff --git a/samples/phrase.sample b/samples/phrase.sample deleted file mode 100644 index 1c84bac..0000000 --- a/samples/phrase.sample +++ /dev/null @@ -1 +0,0 @@ -[ 1 2 ] s. \ No newline at end of file diff --git a/samples/phrase.slam b/samples/phrase.slam new file mode 100644 index 0000000..1c84bac --- /dev/null +++ b/samples/phrase.slam @@ -0,0 +1 @@ +[ 1 2 ] s. \ No newline at end of file diff --git a/samples/recursion.sample b/samples/recursion.sample deleted file mode 100644 index 7dc833b..0000000 --- a/samples/recursion.sample +++ /dev/null @@ -1,7 +0,0 @@ -define factorial --- Integer -> Integer - dup 0 eq? not - [ dup 1 - factorial * ] - [ drop 1 ] cond ; - -5 factorial . diff --git a/samples/recursion.slam b/samples/recursion.slam new file mode 100644 index 0000000..7dc833b --- /dev/null +++ b/samples/recursion.slam @@ -0,0 +1,7 @@ +define factorial +-- Integer -> Integer + dup 0 eq? not + [ dup 1 - factorial * ] + [ drop 1 ] cond ; + +5 factorial . diff --git a/samples/strliterals.sample b/samples/strliterals.sample deleted file mode 100644 index ee61fa2..0000000 --- a/samples/strliterals.sample +++ /dev/null @@ -1,3 +0,0 @@ -[ 'a' 'b' 'c' ] dup s. -"abc" dup s. -eq? . diff --git a/samples/strliterals.slam b/samples/strliterals.slam new file mode 100644 index 0000000..ee61fa2 --- /dev/null +++ b/samples/strliterals.slam @@ -0,0 +1,3 @@ +[ 'a' 'b' 'c' ] dup s. +"abc" dup s. +eq? . diff --git a/samples/testing.sample b/samples/testing.sample deleted file mode 100644 index f9352cd..0000000 --- a/samples/testing.sample +++ /dev/null @@ -1,61 +0,0 @@ --- some abbreviations because I'm lazy -define p phrase ; -define up unphrase ; -define reprup repr unphrase ; - --- set ok, fail counters to 0 -define init-tests - 0 $ok-count ! - 0 $fail-count ! - ; - --- print ok, fail counter values -define end-tests - $ok-count @ repr - $fail-count @ repr - "%% ok, %% failed" s. - $ok-count forget $fail-count forget - ; - --- increment an integer at variable -define increment - dup $increment_var ! - @ 1 + $increment_var @ ! - $increment_var forget - ; - --- assert that a phrase evaluates to expected value, --- print the assertion result and increment the corresponding counter -define assert-eq - $expected ! - $actualp ! - $actualp @ up $actualv ! - $expected @ $actualv @ eq? - [ $actualp @ repr - $expected @ repr - "%% == %% 👍" s. - $ok-count increment ] - [ $actualp @ repr - $expected @ repr - $actualv @ repr - "%% == %% ❌, actual: %%" s. - $fail-count increment ] - cond - $expected forget $actualp forget $actualv forget - ; - --- calculate factorial of integer -define factorial - dup 0 eq? not - [ dup 1 - factorial * ] - [ drop 1 ] cond - ; - -init-tests -[ 0 factorial ] 1 assert-eq -[ 1 factorial ] 1 assert-eq -[ 2 factorial ] 3 assert-eq -[ 3 factorial ] 6 assert-eq -[ 4 factorial ] 26 assert-eq -[ 5 factorial ] 120 assert-eq -end-tests diff --git a/samples/testing.slam b/samples/testing.slam new file mode 100644 index 0000000..f9352cd --- /dev/null +++ b/samples/testing.slam @@ -0,0 +1,61 @@ +-- some abbreviations because I'm lazy +define p phrase ; +define up unphrase ; +define reprup repr unphrase ; + +-- set ok, fail counters to 0 +define init-tests + 0 $ok-count ! + 0 $fail-count ! + ; + +-- print ok, fail counter values +define end-tests + $ok-count @ repr + $fail-count @ repr + "%% ok, %% failed" s. + $ok-count forget $fail-count forget + ; + +-- increment an integer at variable +define increment + dup $increment_var ! + @ 1 + $increment_var @ ! + $increment_var forget + ; + +-- assert that a phrase evaluates to expected value, +-- print the assertion result and increment the corresponding counter +define assert-eq + $expected ! + $actualp ! + $actualp @ up $actualv ! + $expected @ $actualv @ eq? + [ $actualp @ repr + $expected @ repr + "%% == %% 👍" s. + $ok-count increment ] + [ $actualp @ repr + $expected @ repr + $actualv @ repr + "%% == %% ❌, actual: %%" s. + $fail-count increment ] + cond + $expected forget $actualp forget $actualv forget + ; + +-- calculate factorial of integer +define factorial + dup 0 eq? not + [ dup 1 - factorial * ] + [ drop 1 ] cond + ; + +init-tests +[ 0 factorial ] 1 assert-eq +[ 1 factorial ] 1 assert-eq +[ 2 factorial ] 3 assert-eq +[ 3 factorial ] 6 assert-eq +[ 4 factorial ] 26 assert-eq +[ 5 factorial ] 120 assert-eq +end-tests diff --git a/samples/variables.sample b/samples/variables.sample deleted file mode 100644 index 8902b04..0000000 --- a/samples/variables.sample +++ /dev/null @@ -1,13 +0,0 @@ --- store foo = 10 -10 $foo ! - --- load and print foo -$foo ? - --- print 1 + value at foo -1 $foo @ + . - --- define x * 2 = x + x -define *2 dup + ; - -666 *2 . diff --git a/samples/variables.slam b/samples/variables.slam new file mode 100644 index 0000000..8902b04 --- /dev/null +++ b/samples/variables.slam @@ -0,0 +1,13 @@ +-- store foo = 10 +10 $foo ! + +-- load and print foo +$foo ? + +-- print 1 + value at foo +1 $foo @ + . + +-- define x * 2 = x + x +define *2 dup + ; + +666 *2 . -- cgit v1.3