diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 89595fd..afcf247 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -3,6 +3,10 @@ RETRO 12 - 2018.6 - WIP Major Changes: - renamed `s:with-format` to `s:format` +- ```` no longer used for code blocks (now reserved for 'tests' + under rre) + +---------------------------------------------------------------- Bug fixes: @@ -14,6 +18,8 @@ Core Language: Interfaces: +- no longer use ```` for code blocks; use ~~~ instead + Other: Documentation: diff --git a/doc/QuotesAndCombinators.md b/doc/QuotesAndCombinators.md index d7becf2..a41984f 100644 --- a/doc/QuotesAndCombinators.md +++ b/doc/QuotesAndCombinators.md @@ -8,9 +8,9 @@ any time. Example: -```` +~~~ #12 [ dup * ] call -```` +~~~ In this, the code stating with `[` and ending with `]` is the quote. Here it's just `call`ed immediately, but you can also pass it to other words. @@ -23,60 +23,60 @@ execution. This begins with conditionals. Assuming that we have a flag on the stack, you can run a quote if the flag is `TRUE`: -```` +~~~ #1 #2 eq? [ 'True! puts ] if -```` +~~~ Or if it's `FALSE`: -```` +~~~ #1 #2 eq? [ 'Not_true! puts ] -if -```` +~~~ There's also a `choose` combinator: -```` +~~~ #1 #2 eq? [ 'True! puts ] [ 'Not_true! puts ] choose -```` +~~~ RETRO also uses combinators for loops: A counted loop takes a count and a quote: -```` +~~~ #0 #100 [ dup putn sp n:inc ] times -```` +~~~ You can also loop while a quote returns a flag of `TRUE`: -```` +~~~ #0 [ n:inc dup #100 lt? ] while -```` +~~~ Or while it returns `FALSE`: -```` +~~~ #100 [ n:dec dup n:zero? ] until -```` +~~~ In RETRO you can also use combinators to iterate over data structures. For instance, many structures provide a `for-each` combinator which can be run once for each item in the structure. E.g., with a string: -```` +~~~ 'Hello [ putc ] s:for-each -```` +~~~ Moving further, combinators are also used for filters and operations on data. Again with strings: -```` +~~~ 'Hello_World! [ c:-vowel? ] s:filter -```` +~~~ This runs `s:filter` which takes a quote returning a flag. For each `TRUE` it appends the character into a new string, while `FALSE` results are @@ -84,9 +84,9 @@ discarded. You might also use a `map`ping combinator to update a data set: -```` +~~~ 'Hello_World [ c:to-upper ] s:map -```` +~~~ This takes a quote that modifies a value which is then used to build a new string. diff --git a/doc/Syntax.md b/doc/Syntax.md index 89437d6..c1ba739 100644 --- a/doc/Syntax.md +++ b/doc/Syntax.md @@ -26,7 +26,7 @@ The major prefixes are: Example: -```` +~~~ (This_is_a_comment) (Define_some_words) @@ -49,4 +49,4 @@ $a (this_is_the_ASCII_'a') 'Foo var #100 !Foo @Foo putn -```` +~~~ diff --git a/example/1D-Cellular-Automota.forth b/example/1D-Cellular-Automota.forth index ca40a58..d39f33f 100644 --- a/example/1D-Cellular-Automota.forth +++ b/example/1D-Cellular-Automota.forth @@ -17,50 +17,50 @@ If, in the following table, a live cell is represented by 1 and a dead cell by 0 Declare module constant (prevents reloading when using `import`): -```` +~~~ :example|RosettaCode|1D-Cellular-Automota ; -```` +~~~ I had originally written an implementation of this in RETRO 11. For RETRO 12 I took advantage of new language features and some further considerations into the rules for this task. The first word, `string,` inlines a string to `here`. I'll use this to setup the initial input. -```` +~~~ :string, (s-) [ , ] s:for-each #0 , ; -```` +~~~ The next two lines setup an initial generation and a buffer for the evolved generation. In this case, `This` is the current generation and `Next` reflects the next step in the evolution. -```` +~~~ 'This d:create '.###.##.#.#.#.#..#.. string, 'Next d:create '.................... string, -```` +~~~ I use `display` to show the current generation. -```` +~~~ :display (-) &This puts nl ; -```` +~~~ As might be expected, `update` copies the `Next` generation to the `This` generation, setting things up for the next cycle. -```` +~~~ :update (-) &Next &This dup s:length copy ; -```` +~~~ The word `group` extracts a group of three cells. This data will be passed to `evolve` for processing. -```` +~~~ :group (a-nnn) [ fetch ] [ n:inc fetch ] [ n:inc n:inc fetch ] tri ; -```` +~~~ I use `evolve` to decide how a cell should change, based on its initial state with relation to its neighbors. @@ -72,25 +72,25 @@ In the prior implementation this part was much more complex as I tallied things - if the result is `#-2`, the cell should live - otherwise it'll be dead -```` +~~~ :evolve (nnn-c) [ $# eq? ] tri@ + + #-2 eq? [ $# ] [ $. ] choose ; -```` +~~~ For readability I separated out the next few things. `at` takes an index and returns the address in `This` starting with the index. -```` +~~~ :at (n-na) &This over + ; -```` +~~~ The `record` word adds the evolved value to a buffer. In this case my `generation` code will set the buffer to `Next`. -```` +~~~ :record (c-) buffer:add n:inc ; -```` +~~~ And now to tie it all together. Meet `generation`, the longest bit of code in this sample. It has several bits: @@ -107,21 +107,21 @@ And now to tie it all together. Meet `generation`, the longest bit of code in th - copy `Next` to `This` using `update`. -```` +~~~ :generation (-) [ &Next buffer:set #-1 &This s:length [ at group evolve record ] times drop update ] buffer:preserve ; -```` +~~~ The last bit is a helper. It takes a number of generations and displays the state, then runs a `generation`. -```` +~~~ :generations (n-) [ display generation ] times ; -```` +~~~ And a text. The output should be: @@ -136,6 +136,6 @@ And a text. The output should be: ..##................ ..##................ -```` +~~~ #10 generations -```` +~~~ diff --git a/example/99Bottles.forth b/example/99Bottles.forth index 70af587..6451678 100644 --- a/example/99Bottles.forth +++ b/example/99Bottles.forth @@ -2,13 +2,7 @@ Display the text for the *99 Bottles of Beer* song. -Declare module constant (prevents reloading when using `import`): - -```` -:example|99Bottles ; -```` - -```` +~~~ [ dup putn sp 'bottles puts ] [ '1_bottle puts ] [ 'no_more_bottles puts ] @@ -38,4 +32,4 @@ Declare module constant (prevents reloading when using `import`): [ nl display-verse dup n:-zero? ] while drop ; #99 verses -```` +~~~ diff --git a/example/AddingVectors.forth b/example/AddingVectors.forth index c7fcf5a..233dd00 100644 --- a/example/AddingVectors.forth +++ b/example/AddingVectors.forth @@ -1,16 +1,16 @@ This is an example adding two three element vectors. -```` +~~~ :vadd (v1v2v3-) 'abc 'cabcabcab reorder [ #2 + ] tri@ [ fetch ] bi@ + swap store [ n:inc ] tri@ [ fetch ] bi@ + swap store [ fetch ] bi@ + swap store ; -```` +~~~ A test case: -```` +~~~ 'a d:create #1 , #2 , #3 , 'b d:create #2 , #3 , #4 , 'c d:create #3 allot @@ -20,5 +20,5 @@ A test case: &c fetch-next putn nl fetch-next putn nl fetch putn nl -```` +~~~ diff --git a/example/GCD.forth b/example/GCD.forth index 30b3274..7a58a58 100644 --- a/example/GCD.forth +++ b/example/GCD.forth @@ -1,12 +1,6 @@ # example|GreatestCommonDivisor -Declare module constant (prevents reloading when using `import`): - -```` -:example|GreatestCommonDivisor ; -```` - -```` +~~~ :gcd (ab-n) [ tuck mod dup ] while drop ; -```` +~~~ diff --git a/example/IterativeFibonacci.forth b/example/IterativeFibonacci.forth index ad3d75f..696a432 100644 --- a/example/IterativeFibonacci.forth +++ b/example/IterativeFibonacci.forth @@ -1,15 +1,7 @@ # example|IterativeFibonacci -Declare module constant (prevents reloading when using `import`): - -```` -:example|IterativeFibonacci ; -```` - ----- - -```` +~~~ :fib (n-m) [ #0 #1 ] dip [ over + swap ] times drop ; -```` +~~~ diff --git a/example/LeastCommonMultiple.forth b/example/LeastCommonMultiple.forth index 65546e4..438fe76 100644 --- a/example/LeastCommonMultiple.forth +++ b/example/LeastCommonMultiple.forth @@ -1,17 +1,9 @@ # example|LeastCommonMultiple -Declare module constant (prevents reloading when using `import`): - -```` -:example|LeastCommonMultiple ; -```` - ----- - -```` +~~~ :gcd (ab-n) [ tuck mod dup ] while drop ; :lcm (ab-n) dup-pair gcd [ * ] dip / ; -```` +~~~ diff --git a/example/Primes.forth b/example/Primes.forth index 14d332e..e729ca6 100644 --- a/example/Primes.forth +++ b/example/Primes.forth @@ -1,6 +1,6 @@ This is a quick and dirty way to find prime numbers in a set. -```` +~~~ {{ #2 'NextPrime var :extract (s-s) @@ -12,13 +12,13 @@ This is a quick and dirty way to find prime numbers in a set. #2 !NextPrime dup fetch [ extract &NextPrime v:inc ] times ; }} -```` +~~~ And a test: -```` +~~~ :create-set (-a) here #7000 , #2 #7002 [ dup , n:inc ] times drop ; create-set get-primes [ putn sp ] set:for-each -```` +~~~ diff --git a/example/RecursiveFactorial.forth b/example/RecursiveFactorial.forth index 9c58262..b0f4263 100644 --- a/example/RecursiveFactorial.forth +++ b/example/RecursiveFactorial.forth @@ -1,14 +1,6 @@ # example|RecursiveFactorial -Declare module constant (prevents reloading when using `import`): - -```` -:example|RecursiveFactorial ; -```` - ----- - -```` +~~~ : dup #1 -eq? 0; drop dup n:dec * ; @@ -17,5 +9,5 @@ Declare module constant (prevents reloading when using `import`): dup n:zero? [ n:inc ] [ ] choose ; -```` +~~~ diff --git a/example/RecursiveFibonacci.forth b/example/RecursiveFibonacci.forth index 44b85f0..58a1f82 100644 --- a/example/RecursiveFibonacci.forth +++ b/example/RecursiveFibonacci.forth @@ -1,18 +1,10 @@ # example|RecursiveFibonacci -Declare module constant (prevents reloading when using `import`): - -```` -:example|RecursiveFibonacci ; -```` - ----- - -```` +~~~ :fib (n-m) dup [ n:zero? ] [ #1 eq? ] bi or not 0; drop [ n:dec fib ] sip [ #2 - fib ] call + ; -```` \ No newline at end of file +~~~ diff --git a/example/is-palindrome.forth b/example/is-palindrome.forth index 4baf280..0e471eb 100644 --- a/example/is-palindrome.forth +++ b/example/is-palindrome.forth @@ -10,9 +10,9 @@ In Retro this is fairly easy. We can use `s:hash` to identify a unique string. So make a copy, take he hash, reverse the copy, get its hash, and compare them. -```` +~~~ :s:palindrome? (s-f) dup s:hash [ s:reverse s:hash ] dip eq? ; 'ingirumimusnocteetconsumimurigni s:palindrome? -```` +~~~ diff --git a/tests/test-core.forth b/tests/test-core.forth index c2a5312..602deff 100644 --- a/tests/test-core.forth +++ b/tests/test-core.forth @@ -10,9 +10,9 @@ don't expect this to be much help. First, a way to kill RETRO that'll guarantee a resulting error. We simply divide by zero. -```` +~~~ :err:die (-) #0 #0 / ; -```` +~~~ Next, the guts of the test suite. I'll define a block for each word tested, with some minimal syntax. So a test will look @@ -25,7 +25,7 @@ like: Multiple tests can be between the `Testing` and the `passed`. This will count the number of successful tests. -```` +~~~ 'Total var 'WordsTested var 'Flag var @@ -50,24 +50,24 @@ This will count the number of successful tests. :summary (-) @WordsTested putn '_words_tested puts nl @Total putn '_tests_passed puts nl ; -```` +~~~ And now the tests begin. These should follow the order of the Glossary to make maintenance and checking of completion easier. -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '- Testing [ #2 #1 - ] [ #1 eq? ] try [ #2 #4 #3 - - ] [ #1 eq? ] try [ #1 #2 #1 #9 - ] [ #-8 match #2 match #1 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ ', Testing [ here #0 , here swap - ] [ #1 eq? ] try [ here #12 , fetch ] [ #12 eq? ] try @@ -75,480 +75,480 @@ passed [ fetch-next swap fetch-next swap fetch ] [ #3 eq? swap #2 eq? and swap #1 eq? and ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '; Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '/ Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '[ Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '] Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '{{ Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '}} Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '* Testing [ #1 #2 * ] [ #2 eq? ] try [ #2 #3 * ] [ #6 eq? ] try [ #-1 #10 * ] [ #-10 eq? ] try [ #-1 #2 * #-1 * ] [ #2 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '+ Testing [ #1 #2 + ] [ #3 eq? ] try [ #4 #-2 + ] [ #2 eq? ] try [ #0 #1 + ] [ #1 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '0; Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'again Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'allot Testing [ here #10 allot here swap - ] [ #10 eq? ] try [ here #-10 allot here - ] [ #10 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'and Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'as{ Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '}as Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:ACK Testing [ ASCII:ACK ] [ #6 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:BEL Testing [ ASCII:BEL ] [ #7 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:BS Testing [ ASCII:BS ] [ #8 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:CAN Testing [ ASCII:CAN ] [ #24 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:CR Testing [ ASCII:CR ] [ #13 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:DC1 Testing [ ASCII:DC1 ] [ #17 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:DC2 Testing [ ASCII:DC2 ] [ #18 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:DC3 Testing [ ASCII:DC3 ] [ #19 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:DC4 Testing [ ASCII:DC4 ] [ #20 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:DEL Testing [ ASCII:DEL ] [ #127 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:DLE Testing [ ASCII:DLE ] [ #16 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:EM Testing [ ASCII:EM ] [ #25 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:ENQ Testing [ ASCII:ENQ ] [ #5 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:EOT Testing [ ASCII:EOT ] [ #4 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:ESC Testing [ ASCII:ESC ] [ #27 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:ETB Testing [ ASCII:ETB ] [ #23 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:ETX Testing [ ASCII:ETX ] [ #3 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:FF Testing [ ASCII:FF ] [ #12 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:FS Testing [ ASCII:FS ] [ #28 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:GS Testing [ ASCII:GS ] [ #29 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:HT Testing [ ASCII:HT ] [ #9 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:LF Testing [ ASCII:LF ] [ #10 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:NAK Testing [ ASCII:NAK ] [ #21 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:NUL Testing [ ASCII:NUL ] [ #0 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:RS Testing [ ASCII:RS ] [ #30 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:SI Testing [ ASCII:SI ] [ #15 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:SO Testing [ ASCII:SO ] [ #14 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:SOH Testing [ ASCII:SOH ] [ #1 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:SPACE Testing [ ASCII:SPACE ] [ #32 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:STX Testing [ ASCII:STX ] [ #2 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:SUB Testing [ ASCII:SUB ] [ #26 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:SYN Testing [ ASCII:SYN ] [ #22 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:US Testing [ ASCII:US ] [ #31 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ASCII:VT Testing [ ASCII:VT ] [ #11 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'bi Testing [ #1 [ #3 * ] [ #4 + ] bi ] [ #5 match #3 match ] try [ #2 [ #3 - ] [ #2 / ] bi ] [ #1 match #-1 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'bi@ Testing [ #1 #2 [ #3 * ] bi@ ] [ #6 match #3 match ] try [ #1 #2 [ #3 + ] bi@ ] [ #5 match #4 match ] try [ #1 #2 [ drop #3 ] bi@ ] [ #3 match #3 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'bi* Testing [ #1 #2 [ #3 + ] [ #3 * ] bi* ] [ #6 match #4 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'buffer:add Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'buffer:empty Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'buffer:end Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'buffer:get Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'buffer:preserve Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'buffer:set Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'buffer:size Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'buffer:start Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'call Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'case Testing :foo (n-) #1 [ #33 ] case @@ -560,11 +560,11 @@ passed [ #2 foo ] [ #66 eq? ] try [ #3 foo ] [ #44 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:-consonant? Testing [ $a ] [ c:-consonant? ] try [ $b ] [ c:-consonant? not ] try @@ -593,12 +593,12 @@ passed [ $y ] [ c:-consonant? not ] try [ $z ] [ c:-consonant? not ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:consonant? Testing [ $a ] [ c:consonant? not ] try [ $b ] [ c:consonant? ] try @@ -627,125 +627,125 @@ passed [ $y ] [ c:consonant? ] try [ $z ] [ c:consonant? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:-digit? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:digit? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'choose Testing [ TRUE [ #1 ] [ #0 ] choose ] [ #1 match ] try [ FALSE [ #1 ] [ #0 ] choose ] [ #0 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'class:data Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'class:macro Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'class:primitive Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'class:word Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:letter? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:-lowercase? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:lowercase? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'compile:call Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'compile:jump Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'compile:lit Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'Compiler Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'compile:ret Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'compiling? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'const Testing $e 'A const [ A ] [ $e eq? ] try @@ -754,81 +754,81 @@ passed [ B ] [ #100 eq? ] try [ B ] [ #-100 -eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'copy Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:toggle-case Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:to-lower Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:to-string Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:to-upper Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:-uppercase? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:uppercase? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'curry Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:-visible? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:visible? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:-vowel? Testing [ $a c:-vowel? ] [ FALSE match ] try [ $e c:-vowel? ] [ FALSE match ] try @@ -857,11 +857,11 @@ passed [ $y c:-vowel? ] [ TRUE match ] try [ $z c:-vowel? ] [ TRUE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:vowel? Testing [ $a c:vowel? ] [ TRUE match ] try [ $e c:vowel? ] [ TRUE match ] try @@ -890,404 +890,404 @@ passed [ $y c:vowel? ] [ FALSE match ] try [ $z c:vowel? ] [ FALSE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:-whitespace? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'c:whitespace? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:add-header Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'data Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:class Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:create Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'depth Testing [ depth ] [ #0 eq? ] try [ #1 depth ] [ #1 eq? reset ] try [ #1 #2 depth ] [ #2 eq? reset ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:for-each Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'Dictionary Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'dip Testing [ #1 #2 [ #3 + ] dip ] [ #2 match #4 match ] try [ #0 #1 #2 [ [ #3 + ] dip ] dip ] [ #2 match #1 match #3 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:last Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:last Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:last Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:last Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:link Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:lookup Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:name Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'does Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'drop Testing [ #1 #2 drop ] [ #1 eq? ] try [ #1 #2 #3 drop ] [ #2 match #1 match ] try [ #1 #2 drop drop ] [ #1 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'drop-pair Testing [ #1 #2 #3 drop-pair ] [ #1 eq? ] try [ #1 #2 drop-pair ] [ depth n:zero? ] try [ #1 #2 #3 drop-pair ] [ depth n:-zero? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'dup Testing [ #1 dup ] [ #1 match #1 match ] try [ #4 #3 dup ] [ #3 match #3 match #4 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '?dup Testing [ #1 ?dup ] [ depth #2 match #1 match #1 match ] try [ #0 ?dup ] [ depth #1 match #0 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'dup-pair Testing [ #2 #3 dup-pair ] [ depth #4 match #3 match #2 match #3 match #2 match ] try [ #1 #-1 dup-pair ] [ depth #4 match #-1 match #1 match #-1 match #1 match ] try [ #12 #2 #3 dup-pair ] [ depth #5 match #3 match #2 match #3 match #2 match #12 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'd:xt Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'EOM Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '-eq? Testing [ #1 #2 -eq? ] [ TRUE match ] try [ #1 #1 -eq? ] [ FALSE match ] try [ #2 #2 -eq? ] [ FALSE match ] try [ #2 #1 -eq? ] [ TRUE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'eq? Testing [ #1 #2 eq? ] [ FALSE match ] try [ #1 #1 eq? ] [ TRUE match ] try [ #2 #2 eq? ] [ TRUE match ] try [ #2 #1 eq? ] [ FALSE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'err:notfound Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'FALSE Testing [ FALSE ] [ #0 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'fetch Testing 'A var [ #100 &A store ] [ &A fetch #100 eq? ] try [ #200 &A store ] [ &A fetch #200 eq? ] try [ #300 &A store ] [ &A fetch #300 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'fetch-next Testing 'A d:create #1 , #2 , #3 , [ &A fetch-next ] [ #1 match &A #1 + match ] try [ &A fetch-next drop fetch-next ] [ #2 match &A #2 + match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'gt? Testing [ #1 #2 gt? ] [ FALSE match ] try [ #3 #2 gt? ] [ TRUE match ] try [ #2 #2 gt? ] [ FALSE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'gteq? Testing [ #1 #2 gteq? ] [ FALSE match ] try [ #3 #2 gteq? ] [ TRUE match ] try [ #2 #2 gteq? ] [ TRUE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'Heap Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'here Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'i Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'if Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '-if Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'immediate Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'interpret Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'lt? Testing [ #1 #2 lt? ] [ TRUE match ] try [ #3 #2 lt? ] [ FALSE match ] try [ #2 #2 lt? ] [ FALSE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'lteq? Testing [ #1 #2 lteq? ] [ TRUE match ] try [ #3 #2 lteq? ] [ FALSE match ] try [ #2 #2 lteq? ] [ TRUE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'mod Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '/mod Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:abs Testing [ #1 n:abs ] [ #1 match ] try [ #-1 n:abs ] [ #1 match ] try [ #0 n:abs ] [ #0 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:between? Testing [ #1 #0 #2 n:between? ] [ TRUE match ] try [ #-1 #0 #2 n:between? ] [ FALSE match ] try [ #1 #10 #20 n:between? ] [ FALSE match ] try [ #6 #1 #2000 n:between? ] [ TRUE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:dec Testing [ #1 n:dec ] [ #0 eq? ] try [ #10 n:dec ] [ #9 eq? ] try [ #100 n:dec ] [ #99 eq? ] try [ #-50 n:dec ] [ #-51 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:even? Testing [ #2 n:even? ] [ TRUE match ] try [ #3 n:even? ] [ FALSE match ] try @@ -1296,103 +1296,103 @@ passed [ #6 n:even? ] [ TRUE match ] try [ #7 n:even? ] [ FALSE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:inc Testing [ #1 n:inc ] [ #2 eq? ] try [ #10 n:inc ] [ #11 eq? ] try [ #100 n:inc ] [ #101 eq? ] try [ #-50 n:inc ] [ #-49 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'nip Testing [ #2 #3 nip ] [ #3 eq? ] try [ #2 #3 #4 nip ] [ #4 match #2 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'nl Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:limit Testing [ #10 #5 #20 n:limit ] [ #10 match ] try [ #10 #50 #200 n:limit ] [ #50 match ] try [ #10 #12 #20 n:limit ] [ #12 match ] try [ #10 #5 #8 n:limit ] [ #8 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:max Testing [ #-6 #3 n:max ] [ #3 match ] try [ #6 #-2 n:max ] [ #6 match ] try [ #-1 #-6 n:max ] [ #-1 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:MAX Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:min Testing [ #-6 #3 n:min ] [ #-6 match ] try [ #6 #-2 n:min ] [ #-2 match ] try [ #-1 #-6 n:min ] [ #-6 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:MIN Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:negate Testing [ #-1 n:negate ] [ #1 match ] try [ #0 n:negate ] [ #0 match ] try [ #1 n:negate ] [ #-1 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:negative? Testing [ #1 n:negative? ] [ FALSE match ] try [ #0 n:negative? ] [ FALSE match ] try [ #-1 n:negative? ] [ TRUE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:odd? Testing [ #2 n:odd? ] [ FALSE match ] try [ #3 n:odd? ] [ TRUE match ] try @@ -1401,264 +1401,264 @@ passed [ #6 n:odd? ] [ FALSE match ] try [ #7 n:odd? ] [ TRUE match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'not Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:positive? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:pow Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:sqrt Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:square Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:strictly-positive? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:to-string Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:-zero? Testing [ #1 n:-zero? ] [ #-1 eq? ] try [ #0 n:-zero? ] [ #0 eq? ] try [ #-1 n:-zero? ] [ #-1 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'n:zero? Testing [ #1 n:zero? ] [ #0 eq? ] try [ #0 n:zero? ] [ #-1 eq? ] try [ #-1 n:zero? ] [ #0 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'or Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'over Testing [ #1 #2 over ] [ #1 match #2 match #1 match ] try [ #1 #2 #3 over ] [ #2 match #3 match #2 match #1 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'pop Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'prefix:` Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'prefix:: Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'prefix:! Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'prefix:' Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'prefix:( Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'prefix:@ Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'prefix:$ Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'prefix:& Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'prefix:# Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'push Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'putc Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'putn Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'puts Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'r Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'reclass Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'reorder Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'repeat Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'reset Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ '---reveal--- Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'RewriteUnderscores Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'rot Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's, Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:append Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:case Testing :foo (n-) 'cat [ #33 ] s:case @@ -1670,422 +1670,422 @@ passed [ 'egg foo ] [ #66 eq? ] try [ 'forth foo ] [ #44 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:chop Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:contains-char? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:contains-string? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'ScopeList Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:empty Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'set:contains? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'set:contains-string? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'set:dup Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'set:filter Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'set:from-results Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'set:from-string Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'set:for-each Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'set:length Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'set:map Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'set:nth Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'set:reverse Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:eq? Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:filter Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:for-each Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:hash Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'shift Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:index-of Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'sip Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:keep Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:left Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:length Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:map Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'sp Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:prepend Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:reverse Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:right Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:skip Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:split Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:substr Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:temp Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:to-lower Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:to-number Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'store Testing 'A var [ #100 &A store ] [ &A fetch #100 eq? ] try [ #200 &A store ] [ &A fetch #200 eq? ] try [ #300 &A store ] [ &A fetch #300 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'store-next Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:to-upper Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:trim Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:trim-left Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:trim-right Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'STRINGS Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'swap Testing [ #1 #2 #3 swap ] [ #2 match #3 match #1 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 's:format Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'tab Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'TempStringMax Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'TempStrings Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'times Testing [ #5 [ #1 ] times ] [ #1 match #1 match #1 match #1 match #1 match ] try [ #3 [ #1 ] times ] [ #1 match #1 match #1 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'tors Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'tri Testing [ #30 [ #1 + ] [ #2 * ] [ #30 - ] tri ] [ #0 match #60 match #31 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'tri@ Testing [ #1 #2 [ #30 * ] tri@ ] [ #60 match #30 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'tri* Testing [ #1 #2 #3 [ #1 - ] [ #2 - ] [ #3 - ] tri* ] [ #0 match #0 match #0 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'TRUE Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'tuck Testing [ #1 #2 tuck ] [ #2 match #1 match #2 match ] try [ #3 #1 #2 tuck ] [ #2 match #1 match #2 match #3 match ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'until Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'var Testing 'A var 'B var @@ -2095,11 +2095,11 @@ passed [ #50 &B store ] [ &B fetch #50 eq? ] try [ #100 A store ] [ A fetch #100 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'var Testing #30 'A var #40 'B var @@ -2111,50 +2111,50 @@ passed [ #50 &B store ] [ &B fetch #50 eq? ] try [ #100 A store ] [ A fetch #100 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'v:dec Testing #199 'A var [ &A v:dec ] [ &A fetch #198 eq? ] try [ &A v:dec ] [ &A fetch #197 eq? ] try [ &A v:dec ] [ &A fetch #196 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'v:dec-by Testing #199 'A var [ #2 &A v:dec-by ] [ &A fetch #197 eq? ] try [ #3 &A v:dec-by ] [ &A fetch #194 eq? ] try [ #5 &A v:dec-by ] [ &A fetch #189 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'Version Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'v:inc Testing 'A var [ #0 &A store &A v:inc &A v:inc &A v:inc ] [ &A fetch #3 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'v:inc-by Testing 'TestA var [ #10 &TestA v:inc-by ] [ @TestA #10 eq? ] try @@ -2162,80 +2162,80 @@ passed [ #10 &TestA v:inc-by ] [ @TestA #30 eq? ] try [ #-20 &TestA v:inc-by ] [ @TestA #10 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'v:limit Testing 'A var [ #100 !A &A #-10 #10 v:limit ] [ @A #10 eq? ] try [ #-100 !A &A #-10 #10 v:limit ] [ @A #-10 eq? ] try [ #6 !A &A #-10 #10 v:limit ] [ @A #6 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'v:off Testing 'A var [ &A v:off ] [ @A n:zero? ] try [ #1 !A &A v:off ] [ @A n:zero? ] try [ #-1 !A &A v:off ] [ @A n:zero? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'v:on Testing 'A var [ &A v:on ] [ @A #-1 eq? ] try [ #0 !A &A v:on ] [ @A #-1 eq? ] try [ #-2 !A &A v:on ] [ @A #-1 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'v:preserve Testing 'A var [ #100 &A store &A [ #40 &A store ] v:preserve ] [ &A fetch #100 eq? ] try passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'v:update-using Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'while Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'words Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ 'xor Testing passed -```` +~~~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -```` +~~~ summary -```` +~~~