From 2fe886afba141c18fc5950bbd3f14162f4903fd2 Mon Sep 17 00:00:00 2001 From: sforman Date: Wed, 2 Aug 2023 19:37:36 -0700 Subject: [PATCH] Checked old defs. I forgot `over`! --- Thun.md | 2 +- implementations/check_against_defs.txt | 213 --------------------------------- implementations/defs.txt | 3 + 3 files changed, 4 insertions(+), 214 deletions(-) delete mode 100644 implementations/check_against_defs.txt diff --git a/Thun.md b/Thun.md index 49702e7..56237da 100644 --- a/Thun.md +++ b/Thun.md @@ -180,7 +180,7 @@ unquoted symbol on the stack: cats That by itself won't break anything (the stack is just a list.) -But if you were to use, say, `dip`, in such a way as to put the symbols +But if you were to use, say, `dip`, in such a way as to put the symbol back onto the expression, then when the interpreter encounters it, it will attempt to evaluate it, which is almost certainly not what you want. diff --git a/implementations/check_against_defs.txt b/implementations/check_against_defs.txt deleted file mode 100644 index d1170ee..0000000 --- a/implementations/check_against_defs.txt +++ /dev/null @@ -1,213 +0,0 @@ - -██╗ ██╗██████╗ ██████╗ █████╗ ██████╗ ██╗ ██╗ -██║ ██║██╔══██╗██╔══██╗██╔══██╗██╔══██╗╚██╗ ██╔╝ -██║ ██║██████╔╝██████╔╝███████║██████╔╝ ╚████╔╝ -██║ ██║██╔══██╗██╔══██╗██╔══██║██╔══██╗ ╚██╔╝ -███████╗██║██████╔╝██║ ██║██║ ██║██║ ██║ ██║ -╚══════╝╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ - - -Start with increment and decrement: - - -- ≡ 1 - - ++ ≡ 1 + - -Common symbols for operations: - - = ≡ eq - + ≡ add - > ≡ gt - < ≡ lt - >= ≡ ge - <= ≡ le - != ≡ ne - <> ≡ ne - - % ≡ mod - + ≡ add - - ≡ sub - * ≡ mul - / ≡ floordiv - div ≡ floordiv - - & ≡ and - | ≡ or - ! ≡ not - - << ≡ lshift - >> ≡ rshift - - -• ≡ - - -? ≡ dup bool - - -&& ≡ nulco [nullary [false]] dip branch -|| ≡ nulco [nullary] dip [true] branch - - -!- ≡ 0 >= - -<{} ≡ [] swap -<<{} ≡ [] rollup - -abs ≡ dup 0 < [] [neg] branch - -anamorphism ≡ [pop []] swap [dip swons] genrec - -app1 ≡ grba infrst -app2 ≡ [grba swap grba swap] dip [infrst] cons ii -app3 ≡ 3 appN -appN ≡ [grabN] codi map reverse disenstacken - -at ≡ drop first - -b ≡ [i] dip i -dipd ≡ [dip] codi -genrec ≡ [[genrec] ccccons] nullary swons concat ifte -tailrec ≡ [i] genrec -ifte ≡ [nullary] dipd swap branch -ii ≡ [dip] dupdip i -infra ≡ swons swaack [i] dip swaack -x ≡ dup i -pam ≡ [i] map - - - nullary ≡ [stack] dip infra first - unary ≡ nullary popd - binary ≡ unary popd - ternary ≡ binary popd - -ccccons ≡ ccons ccons -ccons ≡ cons cons - -clear ≡ [] swaack pop - -cleave ≡ fork popdd -clop ≡ cleave popdd -fork ≡ [i] app2 - -cmp ≡ [[>] swap] dipd [ifte] ccons [=] swons ifte - -codi ≡ cons dip -codireco ≡ codi reco - -dinfrirst ≡ dip infrst - - -disenstacken ≡ ? [uncons ?] loop pop -enstacken ≡ stack [clear] dip - -down_to_zero ≡ [0 >] [dup --] while - -drop ≡ [rest] times - -dupd ≡ [dup] dip -dupdd ≡ [dup] dipd -dupdip ≡ dupd dip -dupdipd ≡ dup dipd - - - rest ≡ uncons popd - first ≡ uncons pop - second ≡ rest first - third ≡ rest second - fourth ≡ rest third - - -flatten ≡ <{} [concat] step - -gcd ≡ true [tuck mod dup 0 >] loop pop - - -grabN ≡ <{} [cons] times -grba ≡ [stack popd] dip - -hypot [sqr] ii + sqrt - -infrst ≡ infra first - -make_generator ≡ [codireco] ccons - -manual ≡ [] words [help] step pop - -neg ≡ 0 swap - -not ≡ [true] [false] branch - -nulco ≡ [nullary] cons -of ≡ swap at - -over ≡ [dup] dip swap - -pm ≡ [+] [-] clop - -popd ≡ [pop] dip -popdd ≡ [pop] dipd -popop ≡ pop pop -popopop ≡ pop popop -popopd ≡ [popop] dip -popopdd ≡ [popop] dipd - -product ≡ 1 swap [*] step - -quoted ≡ [unit] dip - -range ≡ [0 <=] [1 - dup] anamorphism -range_to_zero ≡ unit [down_to_zero] infra - -reco ≡ rest cons - - -reverse ≡ <{} shunt - -roll> ≡ swap swapd -roll< ≡ swapd swap -rollup ≡ roll> -rolldown roll< - -rrest ≡ rest rest - -run ≡ <{} infra -shift ≡ uncons [swons] dip -shunt ≡ [swons] step -size ≡ [pop ++] step_zero -spiral_next ≡ [[[abs] ii <=] [[<>] [pop !-] ||] &&] [[!-] [[++]] [[--]] ifte dip] [[pop !-] [--] [++] ifte] ifte -split_at ≡ [drop] [take] clop -split_list ≡ [take reverse] [drop] clop -sqr ≡ dup * -stackd ≡ [stack] dip -step_zero ≡ 0 roll> step -stuncons ≡ stack uncons -sum ≡ [+] step_zero -swapd ≡ [swap] dip -swons ≡ swap cons -swoncat ≡ swap concat -sqr ≡ dup mul -take ≡ <<{} [shift] times pop -tuck ≡ dup swapd -uncons ≡ [first] [rest] cleave -unit ≡ [] cons -unquoted ≡ [i] dip -unswons ≡ uncons swap -while ≡ swap nulco dupdipd concat loop - -step ≡ [_step0] x -_step0 ≡ _step1 [popopop] [_stept] branch -_step1 ≡ [?] dipd roll< -_stept ≡ [uncons] dipd [dupdipd] dip x - -times ≡ [_times0] x -_times0 ≡ _times1 [popopop] [_timest] branch -_times1 ≡ [dup 0 >] dipd roll< -_timest ≡ [[--] dip dupdipd] dip x - -map ≡ [_map0] cons [[] [_map?] [_mape]] dip tailrec -_map? ≡ pop bool not -_mape ≡ popd reverse -_map0 ≡ [_map1] dipd _map2 -_map1 ≡ stackd shift -_map2 ≡ [infrst] cons dipd roll< swons - - diff --git a/implementations/defs.txt b/implementations/defs.txt index f4682da..6702daf 100644 --- a/implementations/defs.txt +++ b/implementations/defs.txt @@ -12,6 +12,8 @@ or nulco [nullary] dip [true] branch !- 0 >= <{} [] swap <<{} [] rollup +<< lshift +>> rshift abs dup 0 < [] [neg] branch anamorphism [pop []] swap [dip swons] genrec app1 grba infrst @@ -62,6 +64,7 @@ nulco [nullary] cons null [] concat bool not nullary [stack] dinfrirst of swap at +over [dup] dip swap pam [i] map pm [+] [-] clop popd [pop] dip -- 2.11.0