From 5edf0797b4fe447e8cdc48d58271f93aaf0a5afe Mon Sep 17 00:00:00 2001 From: sforman Date: Fri, 18 Aug 2023 17:09:08 -0700 Subject: [PATCH] sort --- implementations/defs.txt | 34 ++++++++++++------------- implementations/scheme-chicken/defs.scm | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/implementations/defs.txt b/implementations/defs.txt index 185437c..4dc279d 100644 --- a/implementations/defs.txt +++ b/implementations/defs.txt @@ -4,18 +4,15 @@ lt [false] [false] [true] cmp neq [true] [false] [true] cmp le [false] [true] [true] cmp ge [true] [true] [false] cmp --- 1 - ? dup bool -and nulco [nullary [false]] dip branch -++ 1 + -or nulco [nullary] dip [true] branch !- 0 >= +++ 1 + +-- 1 - <{} [] swap <<{} [] rollup -<< lshift ->> rshift abs dup 0 < [] [neg] branch anamorphism [pop []] swap [dip swons] genrec +and nulco [nullary [false]] dip branch app1 grba infrst app2 [grba swap grba swap] dip [infrst] cons ii app3 3 appN @@ -38,10 +35,10 @@ disenstacken swaack pop divmod [/] [%] clop down_to_zero [0 >] [dup --] while drop [rest] times -dupd [dup] dip dupdd [dup] dipd -dupdip dupd dip +dupd [dup] dip dupdipd dup dipd +dupdip dupd dip enstacken stack [clear] dip first uncons pop flatten <{} [concat] step @@ -56,24 +53,26 @@ ifte [nullary] dipd swap branch ii [dip] dupdip i infra swons swaack [i] dip swaack infrst infra first +<< lshift lshift [2 *] times make_generator [codireco] ccons mod % neg 0 swap - not [true] [false] branch nulco [nullary] cons -null [] swap concat bool not nullary [stack] dinfrirst +null [] swap concat bool not of swap at +or nulco [nullary] dip [true] branch over [dup] dip swap pam [i] map pm [+] [-] clop -popd [pop] dip popdd [pop] dipd -popop pop pop -popopop pop popop -popopd [popop] dip +popd [pop] dip popopdd [popop] dipd +popopd [popop] dip +popopop pop popop +popop pop pop product 1 swap [*] step quoted [unit] dip range [0 <=] [-- dup] anamorphism @@ -81,11 +80,12 @@ range_to_zero unit [down_to_zero] infra reco rest cons rest uncons popd reverse <{} shunt -roll> swap swapd -roll< swapd swap -rollup roll> rolldown roll< +roll< swapd swap +roll> swap swapd +rollup roll> rrest rest rest +>> rshift rshift [2 /] times run <{} infra second rest first @@ -102,8 +102,8 @@ step_zero 0 roll> step stuncons stack uncons sum [+] step_zero swapd [swap] dip -swons swap cons swoncat swap concat +swons swap cons tailrec [i] genrec take <<{} [shift] times pop ternary binary popd diff --git a/implementations/scheme-chicken/defs.scm b/implementations/scheme-chicken/defs.scm index 598b847..6d66887 100644 --- a/implementations/scheme-chicken/defs.scm +++ b/implementations/scheme-chicken/defs.scm @@ -1 +1 @@ -(define (defs) (list "eq [false] [true] [false] cmp" "gt [true] [false] [false] cmp" "lt [false] [false] [true] cmp" "neq [true] [false] [true] cmp" "le [false] [true] [true] cmp" "ge [true] [true] [false] cmp" "-- 1 -" "? dup bool" "and nulco [nullary [false]] dip branch" "++ 1 +" "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" "app2 [grba swap grba swap] dip [infrst] cons ii" "app3 3 appN" "appN [grabN] codi map reverse disenstacken" "at drop first" "average [sum] [size] cleave /" "b [i] dip i" "binary unary popd" "ccccons ccons ccons" "ccons cons cons" "clear [] swaack pop" "cleave fork popdd" "clop cleave popdd" "cmp [[>] swap] dipd [ifte] ccons [=] swons ifte" "codi cons dip" "codireco codi reco" "dinfrirst dip infrst" "dipd [dip] codi" "disenstacken swaack pop" "divmod [/] [%] clop" "down_to_zero [0 >] [dup --] while" "drop [rest] times" "dupd [dup] dip" "dupdd [dup] dipd" "dupdip dupd dip" "dupdipd dup dipd" "enstacken stack [clear] dip" "first uncons pop" "flatten <{} [concat] step" "fork [i] app2" "fourth rest third" "gcd true [tuck mod dup 0 >] loop pop" "genrec [[genrec] ccccons] nullary swons concat ifte" "grabN <{} [cons] times" "grba [stack popd] dip" "hypot [sqr] ii + sqrt" "ifte [nullary] dipd swap branch" "ii [dip] dupdip i" "infra swons swaack [i] dip swaack" "infrst infra first" "lshift [2 *] times" "make_generator [codireco] ccons" "mod %" "neg 0 swap -" "not [true] [false] branch" "nulco [nullary] cons" "null [] swap concat bool not" "nullary [stack] dinfrirst" "of swap at" "over [dup] dip swap" "pam [i] map" "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 <=] [-- dup] anamorphism" "range_to_zero unit [down_to_zero] infra" "reco rest cons" "rest uncons popd" "reverse <{} shunt" "roll> swap swapd" "roll< swapd swap" "rollup roll>" "rolldown roll<" "rrest rest rest" "rshift [2 /] times" "run <{} infra" "second rest first" "shift uncons [swons] dip" "shunt [swons] step" "size [pop ++] step_zero" "small dup null [rest null] [pop true] branch" "spiral_next [[[abs] ii <=] [[<>] [pop !-] or] and] [[!-] [[++]] [[--]] ifte dip] [[pop !-] [--] [++] ifte] ifte" "split_at [drop] [take] clop" "split_list [take reverse] [drop] clop" "sqr dup mul" "stackd [stack] dip" "step_zero 0 roll> step" "stuncons stack uncons" "sum [+] step_zero" "swapd [swap] dip" "swons swap cons" "swoncat swap concat" "tailrec [i] genrec" "take <<{} [shift] times pop" "ternary binary popd" "third rest second" "tuck dup swapd" "unary nullary popd" "uncons [first] [rest] cleave" "unit [] cons" "unquoted [i] dip" "unstack [[] swaack] dip swoncat swaack pop" "unswons uncons swap" "while swap nulco dupdipd concat loop" "x dup i" "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" "_isnt_bool not not" "_isnt_two_bools [_isnt_bool] ii" "_\\/_ [_isnt_bool] [not] branch" "/\\ _isnt_two_bools [pop false] [] branch" "\\/ _isnt_two_bools [] [pop true] branch")) \ No newline at end of file +(define (defs) (list "eq [false] [true] [false] cmp" "gt [true] [false] [false] cmp" "lt [false] [false] [true] cmp" "neq [true] [false] [true] cmp" "le [false] [true] [true] cmp" "ge [true] [true] [false] cmp" "? dup bool" "!- 0 >=" "++ 1 +" "-- 1 -" "<{} [] swap" "<<{} [] rollup" "abs dup 0 < [] [neg] branch" "anamorphism [pop []] swap [dip swons] genrec" "and nulco [nullary [false]] dip branch" "app1 grba infrst" "app2 [grba swap grba swap] dip [infrst] cons ii" "app3 3 appN" "appN [grabN] codi map reverse disenstacken" "at drop first" "average [sum] [size] cleave /" "b [i] dip i" "binary unary popd" "ccccons ccons ccons" "ccons cons cons" "clear [] swaack pop" "cleave fork popdd" "clop cleave popdd" "cmp [[>] swap] dipd [ifte] ccons [=] swons ifte" "codi cons dip" "codireco codi reco" "dinfrirst dip infrst" "dipd [dip] codi" "disenstacken swaack pop" "divmod [/] [%] clop" "down_to_zero [0 >] [dup --] while" "drop [rest] times" "dupdd [dup] dipd" "dupd [dup] dip" "dupdipd dup dipd" "dupdip dupd dip" "enstacken stack [clear] dip" "first uncons pop" "flatten <{} [concat] step" "fork [i] app2" "fourth rest third" "gcd true [tuck mod dup 0 >] loop pop" "genrec [[genrec] ccccons] nullary swons concat ifte" "grabN <{} [cons] times" "grba [stack popd] dip" "hypot [sqr] ii + sqrt" "ifte [nullary] dipd swap branch" "ii [dip] dupdip i" "infra swons swaack [i] dip swaack" "infrst infra first" "<< lshift" "lshift [2 *] times" "make_generator [codireco] ccons" "mod %" "neg 0 swap -" "not [true] [false] branch" "nulco [nullary] cons" "nullary [stack] dinfrirst" "null [] swap concat bool not" "of swap at" "or nulco [nullary] dip [true] branch" "over [dup] dip swap" "pam [i] map" "pm [+] [-] clop" "popdd [pop] dipd" "popd [pop] dip" "popopdd [popop] dipd" "popopd [popop] dip" "popopop pop popop" "popop pop pop" "product 1 swap [*] step" "quoted [unit] dip" "range [0 <=] [-- dup] anamorphism" "range_to_zero unit [down_to_zero] infra" "reco rest cons" "rest uncons popd" "reverse <{} shunt" "rolldown roll<" "roll< swapd swap" "roll> swap swapd" "rollup roll>" "rrest rest rest" ">> rshift" "rshift [2 /] times" "run <{} infra" "second rest first" "shift uncons [swons] dip" "shunt [swons] step" "size [pop ++] step_zero" "small dup null [rest null] [pop true] branch" "spiral_next [[[abs] ii <=] [[<>] [pop !-] or] and] [[!-] [[++]] [[--]] ifte dip] [[pop !-] [--] [++] ifte] ifte" "split_at [drop] [take] clop" "split_list [take reverse] [drop] clop" "sqr dup mul" "stackd [stack] dip" "step_zero 0 roll> step" "stuncons stack uncons" "sum [+] step_zero" "swapd [swap] dip" "swoncat swap concat" "swons swap cons" "tailrec [i] genrec" "take <<{} [shift] times pop" "ternary binary popd" "third rest second" "tuck dup swapd" "unary nullary popd" "uncons [first] [rest] cleave" "unit [] cons" "unquoted [i] dip" "unstack [[] swaack] dip swoncat swaack pop" "unswons uncons swap" "while swap nulco dupdipd concat loop" "x dup i" "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" "_isnt_bool not not" "_isnt_two_bools [_isnt_bool] ii" "_\\/_ [_isnt_bool] [not] branch" "/\\ _isnt_two_bools [pop false] [] branch" "\\/ _isnt_two_bools [] [pop true] branch" "xor [] [not] branch")) \ No newline at end of file