Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@tangentstorm
Created December 10, 2012 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tangentstorm/4250764 to your computer and use it in GitHub Desktop.
Save tangentstorm/4250764 to your computer and use it in GitHub Desktop.
weird dictionary behavior
( -- runtime library ------------ )
: odd? mod 2 1 = ;
( -- main code ------------------ )
4 variable:
digits
variables| number cursor |
{{
variables| bit |
---reveal---
: helper 0 bit ! number @ odd? [ 1 bit ! ] ifTrue
number @ 2 / number ! cursor @ 0 >
[ cursor @ 1 - cursor ! helper ] ifTrue
bit @ putn cr ;
}}
{{
---reveal---
: binary digits @ cursor ! helper ;
}}
: run digits @ cursor ! 5 number ! binary number @ putn cr ;
( ------------------------------- )
3 [ cr ] times
run
michal@proton:~/vrx$ ./retro --with ~/vrx/recurse.rx
Retro 11.5
ok ( -- runtime library ------------ )
ok : odd? mod 2 1 = ;
ok ( -- main code ------------------ )
ok 4
ok variable: digits
ok variables| number cursor |
ok {{
ok variables| bit |
ok ---reveal---
ok : helper 0 bit ! number @ odd? [ 1 bit ! ] ifTrue number @ 2 / number ! cursor @ 0 > [ curs
or @ 1 - cursor ! helper ] ifTrue bit @ putn cr ;
ok }}
ok {{
ok ---reveal---
ok : binary digits @ cursor ! helper ;
ok }}
ok : run digits @ cursor ! 5 number ! binary number @ putn cr ;
ok ( ------------------------------- )
ok 3
ok [ cr ]
ok times
ok run 101
ok 2
2 ?
ok
michal@proton:~/b/gen$ ./retro --with ~/vrx/recurse.rx
<<include: "/home/michal/vrx/recurse.rx">>
Retro 11.5
ok ( -- runtime library ------------ )
ok : odd? mod 2 1 = ;
ok ( -- main code ------------------ )
ok 4
ok variable: digits
ok variables| number cursor |
ok {{
ok variables| bit |
ok ---reveal---
ok : helper 0 bit ! number @ odd? [ 1 bit ! ] ifTrue number @ 2 / number ! cursor @ 0 > [ curs
or @ 1 - cursor ! helper ] ifTrue bit @ putn cr ;
ok }}
ok {{
ok ---reveal---
ok : binary digits @ cursor ! helper ;
ok }}
ok : run digits @ cursor ! 5 number ! binary number @ putn cr ;
ok ( ------------------------------- )
ok 3
ok [ cr ]
ok times
ok run 101
ok 2
2 ?
ok
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment