diff options
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/working-compiler/auto_loop.test | 3 | ||||
| -rw-r--r-- | examples/working-compiler/curry-std.test | 4 | ||||
| -rw-r--r-- | examples/working-compiler/curry.test | 25 | ||||
| -rw-r--r-- | examples/working-compiler/mapping.test | 27 |
4 files changed, 59 insertions, 0 deletions
diff --git a/examples/working-compiler/auto_loop.test b/examples/working-compiler/auto_loop.test new file mode 100644 index 0000000..cdb24a6 --- /dev/null +++ b/examples/working-compiler/auto_loop.test @@ -0,0 +1,3 @@ +|not |not add =*f +0 f dump +1 f dump diff --git a/examples/working-compiler/curry-std.test b/examples/working-compiler/curry-std.test new file mode 100644 index 0000000..28dab30 --- /dev/null +++ b/examples/working-compiler/curry-std.test @@ -0,0 +1,4 @@ +3 3 ||add ||add mul * * dump +||add ||add mul { ** }_ =*m + +3 3 m dump diff --git a/examples/working-compiler/curry.test b/examples/working-compiler/curry.test new file mode 100644 index 0000000..f641fb0 --- /dev/null +++ b/examples/working-compiler/curry.test @@ -0,0 +1,25 @@ +{ _ ==f _ sys .typed .inputs ==inputs + sys .typed .outputs ==outputs + inputs len 2 lt { f } { + { "t from curry should never execute" die } + [ inputs len 1 sub inputs * ] outputs '' ==t + 0 inputs len 2 sub range reverse { ==i t [ i inputs * ] [ t ] '' =t } each + 1 inputs len range reverse { ==i + f < =*g { { g }_ } > -- [ i inputs * ] [ t ] '' =f + 0 t sys .typed .outputs * =t + } each + f + } ? * +} /curry deffd + +|add curry ==a +5 5 a * * dump + +a sys .typed .inputs dump +a sys .typed .outputs _ dump 0 -01 * ==b +b sys .typed .inputs dump +b sys .typed .outputs _ dump 0 -01 * ==c + +3 3 |a |a mul * * dump + +# vim: syn=elymas diff --git a/examples/working-compiler/mapping.test b/examples/working-compiler/mapping.test new file mode 100644 index 0000000..cf25036 --- /dev/null +++ b/examples/working-compiler/mapping.test @@ -0,0 +1,27 @@ +< + { .v -01 . } "#*" defmd + { -- [ 0 ] } "#in" defmd + { -- [ 0 ] } "#out" defmd + { .v keys } "#dom" defmd + { .v ==v =*f v keys { v -01 . f } each } "#each" defmd + { < < { defv }' > ==v "#=[]" =* > } +> -- /map deffd + +map ==m + +0 "foo" m =[] +1 "bar" m =[] +2 "quux" m =[] + +"foo" m * dump +"bar" m * dump +"quux" m * dump + +m dom dump +m { dump } each + +5 m mul ==mm + +"foo" mm * dump +"bar" mm * dump +"quux" mm * dump |
