commit 40bbb544fe1e4cd487eb08fe430fc5416630473f parent a205031660abdd5efedc757acd1d6ad45652c4ca Author: Devine Lu Linvega <aliceffekt@gmail.com> Date: Mon, 23 Dec 2024 07:47:13 -0800 (fib.tal) Cleanup Diffstat:
M | projects/examples/exercises/fib.tal | | | 46 | +++++++++++++++++++++++----------------------- |
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/projects/examples/exercises/fib.tal b/projects/examples/exercises/fib.tal @@ -1,15 +1,17 @@ ( Fibonacci: Numbers made of the two numbers before it ) -|0100 +|100 -@on-reset +@on-reset ( -> ) #0019 #0001 - &l ( -- ) - ( index ) DUP2 pdec #2018 DEO - ( recursive ) DUP2 fib pdec #2018 DEO - ( tail-recursive ) DUP2 #0000 #0001 ROT2 fibr pdec + &>l ( -- ) + ( index ) DUP2 <pdec> + #2018 DEO + ( recursive ) DUP2 fib <pdec> + #2018 DEO + ( tail-recursive ) DUP2 #0000 #0001 ROT2 fibrec <pdec> ( lb ) #0a18 DEO - POP2 POP2 INC2 GTH2k ?&l + POP2 POP2 INC2 GTH2k ?&>l POP2 POP2 ( end ) #800f DEO BRK @@ -18,30 +20,28 @@ @|recursive ) @fib ( num* -- numfib* ) - #0001 GTH2k ?&>ok - POP2 JMP2r &>ok + #0001 GTH2k ?{ POP2 JMP2r } SUB2k fib STH2 - INC2 SUB2 fib STH2r - ADD2 JMP2r + INC2 SUB2 fib STH2r ADD2 JMP2r ( @|tail-recursive ) -@fibr ( a* b* num* -- a* b* numfib* ) - #0001 NEQ2k ?&>no-1 - POP2 POP2 DUP2 JMP2r &>no-1 +@fibrec ( a* b* num* -- a* b* numfib* ) + #0001 NEQ2k ?{ POP2 POP2 DUP2 JMP2r } SUB2 STH2 - SWP2 OVR2 ADD2 STH2r !fibr + SWP2 OVR2 ADD2 STH2r !fibrec ( @|stdlib ) -@pdec ( short* -- ) - #2710 LIT2r 00fb - &w ( -- ) - DIV2k #000a DIV2k MUL2 SUB2 SWPr EQUk OVR STHkr EQU AND ?&>skip - DUP LIT "0 ADD #18 DEO - INCr &>skip - POP2 #000a DIV2 SWPr INCr STHkr ?&w - POP2r POP2 POP2 JMP2r +@<pdec> ( short* -- ) + [ LIT2r ff00 ] + &>read ( -- ) + #000a DIV2k STH2k MUL2 SUB2 STH2r INCr ORAk ?&>read + POP2 + &>write ( -- ) + NIP #30 ADD #18 DEO + OVRr ADDr STHkr ?&>write + POP2r JMP2r