min and max

This commit is contained in:
sforman 2023-10-09 13:04:16 -07:00
parent 32d772e8b0
commit 506b40bba4
7 changed files with 479 additions and 373 deletions

View File

@ -74,6 +74,7 @@ b, def_b
binary, def_binary
ccccons, def_ccccons
ccons, def_ccons
choice, def_choice
cleave, def_cleave
clop, def_clop
codi, def_codi
@ -97,6 +98,7 @@ fork, def_fork
fourth, def_fourth
gcd, def_gcd
genrec, def_genrec
getitem, def_getitem
grabN, def_grabN
grba, def_grba
ifte, def_ifte
@ -105,6 +107,7 @@ infra, def_infra
infrst, def_infrst
<<, def_LESS_THAN_SIGN_LESS_THAN_SIGN
make_generator, def_make_generator
modulus, def_modulus
neg, def_neg
not, def_not
nulco, def_nulco
@ -114,6 +117,7 @@ of, def_of
or, def_or
over, def_over
pam, def_pam
pick, def_pick
pm, def_pm
popdd, def_popdd
popd, def_popd
@ -122,6 +126,7 @@ popopd, def_popopd
popopop, def_popopop
popop, def_popop
pow, def_pow
pred, def_pred
product, def_product
quoted, def_quoted
range, def_range
@ -147,6 +152,7 @@ sqr, def_sqr
stackd, def_stackd
step_zero, def_step_zero
stuncons, def_stuncons
succ, def_succ
sum, def_sum
swapd, def_swapd
swoncat, def_swoncat
@ -185,6 +191,12 @@ _\/_, def___REVERSE_SOLIDUS_SOLIDUS__
\/, def_REVERSE_SOLIDUS_SOLIDUS
_isnt_list, def__isnt_list
zip, def_zip
shift-pair, def_shift_HYPHEN_MINUS_pair
uncons-pair, def_uncons_HYPHEN_MINUS_pair
uncons-two, def_uncons_HYPHEN_MINUS_two
quote-two, def_quote_HYPHEN_MINUS_two
empty?, def_empty_QUESTION_MARK
max-of-two, def_max_HYPHEN_MINUS_of_HYPHEN_MINUS_two
max, def_max
min-of-two, def_min_HYPHEN_MINUS_of_HYPHEN_MINUS_two
min, def_min
on-non-empty-list, def_on_HYPHEN_MINUS_non_HYPHEN_MINUS_empty_HYPHEN_MINUS_list

View File

@ -37,6 +37,7 @@ JoyList def_b_body;
JoyList def_binary_body;
JoyList def_ccccons_body;
JoyList def_ccons_body;
JoyList def_choice_body;
JoyList def_cleave_body;
JoyList def_clop_body;
JoyList def_codi_body;
@ -60,6 +61,7 @@ JoyList def_fork_body;
JoyList def_fourth_body;
JoyList def_gcd_body;
JoyList def_genrec_body;
JoyList def_getitem_body;
JoyList def_grabN_body;
JoyList def_grba_body;
JoyList def_ifte_body;
@ -68,6 +70,7 @@ JoyList def_infra_body;
JoyList def_infrst_body;
JoyList def_LESS_THAN_SIGN_LESS_THAN_SIGN_body;
JoyList def_make_generator_body;
JoyList def_modulus_body;
JoyList def_neg_body;
JoyList def_not_body;
JoyList def_nulco_body;
@ -77,6 +80,7 @@ JoyList def_of_body;
JoyList def_or_body;
JoyList def_over_body;
JoyList def_pam_body;
JoyList def_pick_body;
JoyList def_pm_body;
JoyList def_popdd_body;
JoyList def_popd_body;
@ -85,6 +89,7 @@ JoyList def_popopd_body;
JoyList def_popopop_body;
JoyList def_popop_body;
JoyList def_pow_body;
JoyList def_pred_body;
JoyList def_product_body;
JoyList def_quoted_body;
JoyList def_range_body;
@ -110,6 +115,7 @@ JoyList def_sqr_body;
JoyList def_stackd_body;
JoyList def_step_zero_body;
JoyList def_stuncons_body;
JoyList def_succ_body;
JoyList def_sum_body;
JoyList def_swapd_body;
JoyList def_swoncat_body;
@ -148,9 +154,15 @@ JoyList def_SOLIDUS_REVERSE_SOLIDUS_body;
JoyList def_REVERSE_SOLIDUS_SOLIDUS_body;
JoyList def__isnt_list_body;
JoyList def_zip_body;
JoyList def_shift_HYPHEN_MINUS_pair_body;
JoyList def_uncons_HYPHEN_MINUS_pair_body;
JoyList def_uncons_HYPHEN_MINUS_two_body;
JoyList def_quote_HYPHEN_MINUS_two_body;
JoyList def_empty_QUESTION_MARK_body;
JoyList def_max_HYPHEN_MINUS_of_HYPHEN_MINUS_two_body;
JoyList def_max_body;
JoyList def_min_HYPHEN_MINUS_of_HYPHEN_MINUS_two_body;
JoyList def_min_body;
JoyList def_on_HYPHEN_MINUS_non_HYPHEN_MINUS_empty_HYPHEN_MINUS_list_body;
/*
@ -186,6 +198,7 @@ init_defs(void)
def_binary_body = text_to_expression("unary popd");
def_ccccons_body = text_to_expression("ccons ccons");
def_ccons_body = text_to_expression("cons cons");
def_choice_body = text_to_expression("[pop] [popd] branch");
def_cleave_body = text_to_expression("fork popdd");
def_clop_body = text_to_expression("cleave popdd");
def_codi_body = text_to_expression("cons dip");
@ -209,6 +222,7 @@ init_defs(void)
def_fourth_body = text_to_expression("rest third");
def_gcd_body = text_to_expression("true [tuck mod dup 0 >] loop pop");
def_genrec_body = text_to_expression("[[genrec] ccccons] nullary swons concat ifte");
def_getitem_body = text_to_expression("[rest] times first");
def_grabN_body = text_to_expression("<{} [cons] times");
def_grba_body = text_to_expression("[stack popd] dip");
def_ifte_body = text_to_expression("[nullary] dipd swap branch");
@ -217,6 +231,7 @@ init_defs(void)
def_infrst_body = text_to_expression("infra first");
def_LESS_THAN_SIGN_LESS_THAN_SIGN_body = text_to_expression("lshift");
def_make_generator_body = text_to_expression("[codireco] ccons");
def_modulus_body = text_to_expression("%");
def_neg_body = text_to_expression("0 swap -");
def_not_body = text_to_expression("[true] [false] branch");
def_nulco_body = text_to_expression("[nullary] cons");
@ -226,6 +241,7 @@ init_defs(void)
def_or_body = text_to_expression("nulco [nullary] dip [true] branch");
def_over_body = text_to_expression("[dup] dip swap");
def_pam_body = text_to_expression("[i] map");
def_pick_body = text_to_expression("getitem");
def_pm_body = text_to_expression("[+] [-] clop");
def_popdd_body = text_to_expression("[pop] dipd");
def_popd_body = text_to_expression("[pop] dip");
@ -234,6 +250,7 @@ init_defs(void)
def_popopop_body = text_to_expression("pop popop");
def_popop_body = text_to_expression("pop pop");
def_pow_body = text_to_expression("1 roll> swap [*] cons times");
def_pred_body = text_to_expression("--");
def_product_body = text_to_expression("1 swap [*] step");
def_quoted_body = text_to_expression("[unit] dip");
def_range_body = text_to_expression("[0 <=] [-- dup] anamorphism");
@ -259,6 +276,7 @@ init_defs(void)
def_stackd_body = text_to_expression("[stack] dip");
def_step_zero_body = text_to_expression("0 roll> step");
def_stuncons_body = text_to_expression("stack uncons");
def_succ_body = text_to_expression("--");
def_sum_body = text_to_expression("[+] step_zero");
def_swapd_body = text_to_expression("[swap] dip");
def_swoncat_body = text_to_expression("swap concat");
@ -296,10 +314,16 @@ init_defs(void)
def_SOLIDUS_REVERSE_SOLIDUS_body = text_to_expression("_isnt_two_bools [pop false] [] branch");
def_REVERSE_SOLIDUS_SOLIDUS_body = text_to_expression("_isnt_two_bools [] [pop true] branch");
def__isnt_list_body = text_to_expression("[] swoncat");
def_zip_body = text_to_expression("[null] [pop] [shift-pair] [i cons] genrec");
def_shift_HYPHEN_MINUS_pair_body = text_to_expression("uncons-two [quote-two] dipd");
def_zip_body = text_to_expression("[null] [pop] [uncons-pair] [i cons] genrec");
def_uncons_HYPHEN_MINUS_pair_body = text_to_expression("uncons-two [quote-two] dipd");
def_uncons_HYPHEN_MINUS_two_body = text_to_expression("[uncons] ii swapd");
def_quote_HYPHEN_MINUS_two_body = text_to_expression("unit cons");
def_empty_QUESTION_MARK_body = text_to_expression("dup null");
def_max_HYPHEN_MINUS_of_HYPHEN_MINUS_two_body = text_to_expression("[>] [pop] [popd] ifte");
def_max_body = text_to_expression("[uncons [max-of-two] step] on-non-empty-list");
def_min_HYPHEN_MINUS_of_HYPHEN_MINUS_two_body = text_to_expression("[<] [pop] [popd] ifte");
def_min_body = text_to_expression("[uncons [min-of-two] step] on-non-empty-list");
def_on_HYPHEN_MINUS_non_HYPHEN_MINUS_empty_HYPHEN_MINUS_list_body = text_to_expression("[empty?] dip [first] branch");
}
@ -332,6 +356,7 @@ void def_b(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { pu
void def_binary(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_binary_body, expression); }
void def_ccccons(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_ccccons_body, expression); }
void def_ccons(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_ccons_body, expression); }
void def_choice(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_choice_body, expression); }
void def_cleave(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_cleave_body, expression); }
void def_clop(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_clop_body, expression); }
void def_codi(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_codi_body, expression); }
@ -355,6 +380,7 @@ void def_fork(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) {
void def_fourth(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_fourth_body, expression); }
void def_gcd(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_gcd_body, expression); }
void def_genrec(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_genrec_body, expression); }
void def_getitem(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_getitem_body, expression); }
void def_grabN(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_grabN_body, expression); }
void def_grba(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_grba_body, expression); }
void def_ifte(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_ifte_body, expression); }
@ -363,6 +389,7 @@ void def_infra(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression)
void def_infrst(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_infrst_body, expression); }
void def_LESS_THAN_SIGN_LESS_THAN_SIGN(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_LESS_THAN_SIGN_LESS_THAN_SIGN_body, expression); }
void def_make_generator(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_make_generator_body, expression); }
void def_modulus(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_modulus_body, expression); }
void def_neg(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_neg_body, expression); }
void def_not(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_not_body, expression); }
void def_nulco(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_nulco_body, expression); }
@ -372,6 +399,7 @@ void def_of(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { p
void def_or(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_or_body, expression); }
void def_over(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_over_body, expression); }
void def_pam(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_pam_body, expression); }
void def_pick(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_pick_body, expression); }
void def_pm(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_pm_body, expression); }
void def_popdd(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_popdd_body, expression); }
void def_popd(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_popd_body, expression); }
@ -380,6 +408,7 @@ void def_popopd(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression)
void def_popopop(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_popopop_body, expression); }
void def_popop(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_popop_body, expression); }
void def_pow(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_pow_body, expression); }
void def_pred(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_pred_body, expression); }
void def_product(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_product_body, expression); }
void def_quoted(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_quoted_body, expression); }
void def_range(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_range_body, expression); }
@ -405,6 +434,7 @@ void def_sqr(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) {
void def_stackd(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_stackd_body, expression); }
void def_step_zero(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_step_zero_body, expression); }
void def_stuncons(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_stuncons_body, expression); }
void def_succ(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_succ_body, expression); }
void def_sum(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_sum_body, expression); }
void def_swapd(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_swapd_body, expression); }
void def_swoncat(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_swoncat_body, expression); }
@ -443,6 +473,12 @@ void def_SOLIDUS_REVERSE_SOLIDUS(__attribute__((unused)) JoyListPtr stack, JoyLi
void def_REVERSE_SOLIDUS_SOLIDUS(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_REVERSE_SOLIDUS_SOLIDUS_body, expression); }
void def__isnt_list(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__isnt_list_body, expression); }
void def_zip(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_zip_body, expression); }
void def_shift_HYPHEN_MINUS_pair(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_shift_HYPHEN_MINUS_pair_body, expression); }
void def_uncons_HYPHEN_MINUS_pair(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_uncons_HYPHEN_MINUS_pair_body, expression); }
void def_uncons_HYPHEN_MINUS_two(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_uncons_HYPHEN_MINUS_two_body, expression); }
void def_quote_HYPHEN_MINUS_two(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_quote_HYPHEN_MINUS_two_body, expression); }
void def_empty_QUESTION_MARK(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_empty_QUESTION_MARK_body, expression); }
void def_max_HYPHEN_MINUS_of_HYPHEN_MINUS_two(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_max_HYPHEN_MINUS_of_HYPHEN_MINUS_two_body, expression); }
void def_max(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_max_body, expression); }
void def_min_HYPHEN_MINUS_of_HYPHEN_MINUS_two(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_min_HYPHEN_MINUS_of_HYPHEN_MINUS_two_body, expression); }
void def_min(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_min_body, expression); }
void def_on_HYPHEN_MINUS_non_HYPHEN_MINUS_empty_HYPHEN_MINUS_list(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_on_HYPHEN_MINUS_non_HYPHEN_MINUS_empty_HYPHEN_MINUS_list_body, expression); }

View File

@ -28,6 +28,7 @@ void def_b(JoyListPtr stack, JoyListPtr expression);
void def_binary(JoyListPtr stack, JoyListPtr expression);
void def_ccccons(JoyListPtr stack, JoyListPtr expression);
void def_ccons(JoyListPtr stack, JoyListPtr expression);
void def_choice(JoyListPtr stack, JoyListPtr expression);
void def_cleave(JoyListPtr stack, JoyListPtr expression);
void def_clop(JoyListPtr stack, JoyListPtr expression);
void def_codi(JoyListPtr stack, JoyListPtr expression);
@ -51,6 +52,7 @@ void def_fork(JoyListPtr stack, JoyListPtr expression);
void def_fourth(JoyListPtr stack, JoyListPtr expression);
void def_gcd(JoyListPtr stack, JoyListPtr expression);
void def_genrec(JoyListPtr stack, JoyListPtr expression);
void def_getitem(JoyListPtr stack, JoyListPtr expression);
void def_grabN(JoyListPtr stack, JoyListPtr expression);
void def_grba(JoyListPtr stack, JoyListPtr expression);
void def_ifte(JoyListPtr stack, JoyListPtr expression);
@ -59,6 +61,7 @@ void def_infra(JoyListPtr stack, JoyListPtr expression);
void def_infrst(JoyListPtr stack, JoyListPtr expression);
void def_LESS_THAN_SIGN_LESS_THAN_SIGN(JoyListPtr stack, JoyListPtr expression);
void def_make_generator(JoyListPtr stack, JoyListPtr expression);
void def_modulus(JoyListPtr stack, JoyListPtr expression);
void def_neg(JoyListPtr stack, JoyListPtr expression);
void def_not(JoyListPtr stack, JoyListPtr expression);
void def_nulco(JoyListPtr stack, JoyListPtr expression);
@ -68,6 +71,7 @@ void def_of(JoyListPtr stack, JoyListPtr expression);
void def_or(JoyListPtr stack, JoyListPtr expression);
void def_over(JoyListPtr stack, JoyListPtr expression);
void def_pam(JoyListPtr stack, JoyListPtr expression);
void def_pick(JoyListPtr stack, JoyListPtr expression);
void def_pm(JoyListPtr stack, JoyListPtr expression);
void def_popdd(JoyListPtr stack, JoyListPtr expression);
void def_popd(JoyListPtr stack, JoyListPtr expression);
@ -76,6 +80,7 @@ void def_popopd(JoyListPtr stack, JoyListPtr expression);
void def_popopop(JoyListPtr stack, JoyListPtr expression);
void def_popop(JoyListPtr stack, JoyListPtr expression);
void def_pow(JoyListPtr stack, JoyListPtr expression);
void def_pred(JoyListPtr stack, JoyListPtr expression);
void def_product(JoyListPtr stack, JoyListPtr expression);
void def_quoted(JoyListPtr stack, JoyListPtr expression);
void def_range(JoyListPtr stack, JoyListPtr expression);
@ -101,6 +106,7 @@ void def_sqr(JoyListPtr stack, JoyListPtr expression);
void def_stackd(JoyListPtr stack, JoyListPtr expression);
void def_step_zero(JoyListPtr stack, JoyListPtr expression);
void def_stuncons(JoyListPtr stack, JoyListPtr expression);
void def_succ(JoyListPtr stack, JoyListPtr expression);
void def_sum(JoyListPtr stack, JoyListPtr expression);
void def_swapd(JoyListPtr stack, JoyListPtr expression);
void def_swoncat(JoyListPtr stack, JoyListPtr expression);
@ -139,6 +145,12 @@ void def_SOLIDUS_REVERSE_SOLIDUS(JoyListPtr stack, JoyListPtr expression);
void def_REVERSE_SOLIDUS_SOLIDUS(JoyListPtr stack, JoyListPtr expression);
void def__isnt_list(JoyListPtr stack, JoyListPtr expression);
void def_zip(JoyListPtr stack, JoyListPtr expression);
void def_shift_HYPHEN_MINUS_pair(JoyListPtr stack, JoyListPtr expression);
void def_uncons_HYPHEN_MINUS_pair(JoyListPtr stack, JoyListPtr expression);
void def_uncons_HYPHEN_MINUS_two(JoyListPtr stack, JoyListPtr expression);
void def_quote_HYPHEN_MINUS_two(JoyListPtr stack, JoyListPtr expression);
void def_empty_QUESTION_MARK(JoyListPtr stack, JoyListPtr expression);
void def_max_HYPHEN_MINUS_of_HYPHEN_MINUS_two(JoyListPtr stack, JoyListPtr expression);
void def_max(JoyListPtr stack, JoyListPtr expression);
void def_min_HYPHEN_MINUS_of_HYPHEN_MINUS_two(JoyListPtr stack, JoyListPtr expression);
void def_min(JoyListPtr stack, JoyListPtr expression);
void def_on_HYPHEN_MINUS_non_HYPHEN_MINUS_empty_HYPHEN_MINUS_list(JoyListPtr stack, JoyListPtr expression);

View File

@ -23,6 +23,7 @@ b [i] dip i
binary unary popd
ccccons ccons ccons
ccons cons cons
choice [pop] [popd] branch
clear [] swaack pop
cleave fork popdd
clop cleave popdd
@ -49,6 +50,7 @@ fork [i] app2
fourth rest third
gcd true [tuck mod dup 0 >] loop pop
genrec [[genrec] ccccons] nullary swons concat ifte
getitem [rest] times first
grabN <{} [cons] times
grba [stack popd] dip
ifte [nullary] dipd swap branch
@ -59,6 +61,7 @@ infrst infra first
lshift [2 *] times
make_generator [codireco] ccons
mod %
modulus %
neg 0 swap -
not [true] [false] branch
nulco [nullary] cons
@ -68,6 +71,7 @@ of swap at
or nulco [nullary] dip [true] branch
over [dup] dip swap
pam [i] map
pick getitem
pm [+] [-] clop
popdd [pop] dipd
popd [pop] dip
@ -76,6 +80,7 @@ popopd [popop] dip
popopop pop popop
popop pop pop
pow 1 roll> swap [*] cons times
pred --
product 1 swap [*] step
quoted [unit] dip
range [0 <=] [-- dup] anamorphism
@ -103,6 +108,7 @@ sqr dup mul
stackd [stack] dip
step_zero 0 roll> step
stuncons stack uncons
succ --
sum [+] step_zero
swapd [swap] dip
swoncat swap concat
@ -140,7 +146,13 @@ _\/_ [_isnt_bool] [not] branch
/\ _isnt_two_bools [pop false] [] branch
\/ _isnt_two_bools [] [pop true] branch
_isnt_list [] swoncat
zip [null] [pop] [shift-pair] [i cons] genrec
shift-pair uncons-two [quote-two] dipd
zip [null] [pop] [uncons-pair] [i cons] genrec
uncons-pair uncons-two [quote-two] dipd
uncons-two [uncons] ii swapd
quote-two unit cons
empty? dup null
max-of-two [>] [pop] [popd] ifte
max [uncons [max-of-two] step] on-non-empty-list
min-of-two [<] [pop] [popd] ifte
min [uncons [min-of-two] step] on-non-empty-list
on-non-empty-list [empty?] dip [first] branch

View File

@ -36,7 +36,7 @@
#line 13 "KEYWORDS.txt"
struct dict_entry;
#include <string.h>
/* maximum key range = 323, duplicates = 0 */
/* maximum key range = 365, duplicates = 0 */
#ifdef __GNUC__
__inline
@ -50,32 +50,32 @@ keyword_hash (register const char *str, register size_t len)
{
static const unsigned short asso_values[] =
{
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 110, 324, 324, 324, 105, 324, 324,
324, 324, 100, 50, 324, 35, 324, 10, 35, 10,
80, 35, 324, 324, 324, 324, 324, 324, 324, 324,
95, 60, 15, 40, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 40, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 15, 324, 324, 100, 324, 20, 70, 15,
5, 60, 55, 100, 55, 0, 324, 55, 35, 100,
0, 0, 0, 110, 65, 0, 30, 15, 80, 160,
55, 85, 15, 5, 324, 0, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
324, 324, 324, 324, 324, 324
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 50, 366, 366, 366, 95, 366, 366,
366, 366, 50, 45, 366, 85, 366, 20, 95, 85,
35, 50, 366, 366, 366, 366, 366, 366, 366, 366,
75, 115, 15, 55, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 15, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 80, 366, 366, 75, 366, 105, 70, 15,
5, 30, 35, 115, 20, 0, 366, 95, 65, 85,
0, 0, 0, 110, 55, 0, 40, 15, 30, 45,
10, 105, 10, 30, 366, 0, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366
};
register unsigned int hval = len;
@ -99,11 +99,11 @@ in_word_set (register const char *str, register size_t len)
{
enum
{
TOTAL_KEYWORDS = 176,
TOTAL_KEYWORDS = 188,
MIN_WORD_LENGTH = 1,
MAX_WORD_LENGTH = 15,
MAX_WORD_LENGTH = 17,
MIN_HASH_VALUE = 1,
MAX_HASH_VALUE = 323
MAX_HASH_VALUE = 365
};
static const struct dict_entry wordlist[] =
@ -111,421 +111,449 @@ in_word_set (register const char *str, register size_t len)
{""},
#line 43 "KEYWORDS.txt"
{"i", i_joyfunc},
#line 103 "KEYWORDS.txt"
#line 105 "KEYWORDS.txt"
{"ii", def_ii},
#line 46 "KEYWORDS.txt"
{"pop", pop},
{""},
#line 123 "KEYWORDS.txt"
#line 127 "KEYWORDS.txt"
{"popop", def_popop},
{""},
#line 122 "KEYWORDS.txt"
#line 126 "KEYWORDS.txt"
{"popopop", def_popopop},
#line 40 "KEYWORDS.txt"
{"dip", dip},
#line 119 "KEYWORDS.txt"
#line 123 "KEYWORDS.txt"
{"popd", def_popd},
#line 118 "KEYWORDS.txt"
#line 122 "KEYWORDS.txt"
{"popdd", def_popdd},
#line 121 "KEYWORDS.txt"
#line 125 "KEYWORDS.txt"
{"popopd", def_popopd},
#line 120 "KEYWORDS.txt"
#line 124 "KEYWORDS.txt"
{"popopdd", def_popopdd},
{""},
#line 82 "KEYWORDS.txt"
{"dipd", def_dipd},
#line 83 "KEYWORDS.txt"
{"dipdd", def_dipdd},
#line 84 "KEYWORDS.txt"
{"dipddd", def_dipddd},
#line 85 "KEYWORDS.txt"
{"disenstacken", def_disenstacken},
#line 187 "KEYWORDS.txt"
#line 193 "KEYWORDS.txt"
{"zip", def_zip},
#line 83 "KEYWORDS.txt"
{"dipd", def_dipd},
#line 84 "KEYWORDS.txt"
{"dipdd", def_dipdd},
#line 85 "KEYWORDS.txt"
{"dipddd", def_dipddd},
#line 86 "KEYWORDS.txt"
{"disenstacken", def_disenstacken},
{""},
#line 38 "KEYWORDS.txt"
{"cons", cons},
{""},
#line 30 "KEYWORDS.txt"
{"/", fdiv_q},
#line 164 "KEYWORDS.txt"
#line 172 "KEYWORDS.txt"
{"x", def_x},
#line 170 "KEYWORDS.txt"
{"unswons", def_unswons},
#line 41 "KEYWORDS.txt"
{"dup", dup},
#line 79 "KEYWORDS.txt"
#line 80 "KEYWORDS.txt"
{"codi", def_codi},
{""},
#line 92 "KEYWORDS.txt"
#line 93 "KEYWORDS.txt"
{"dupdip", def_dupdip},
{""},
#line 80 "KEYWORDS.txt"
#line 81 "KEYWORDS.txt"
{"codireco", def_codireco},
#line 90 "KEYWORDS.txt"
#line 91 "KEYWORDS.txt"
{"dupd", def_dupd},
#line 89 "KEYWORDS.txt"
#line 90 "KEYWORDS.txt"
{"dupdd", def_dupdd},
#line 16 "KEYWORDS.txt"
{">", def_gt},
#line 91 "KEYWORDS.txt"
#line 92 "KEYWORDS.txt"
{"dupdipd", def_dupdipd},
#line 66 "KEYWORDS.txt"
{"and", def_and},
#line 67 "KEYWORDS.txt"
{"app1", def_app1},
{""}, {""},
#line 76 "KEYWORDS.txt"
{"ccons", def_ccons},
#line 160 "KEYWORDS.txt"
#line 166 "KEYWORDS.txt"
{"uncons", def_uncons},
#line 185 "KEYWORDS.txt"
{"\\/", def_REVERSE_SOLIDUS_SOLIDUS},
#line 27 "KEYWORDS.txt"
{"add", add},
#line 45 "KEYWORDS.txt"
{"loop", loop},
#line 189 "KEYWORDS.txt"
#line 51 "KEYWORDS.txt"
{"fn", fn},
#line 44 "KEYWORDS.txt"
{"inscribe", inscribe},
#line 94 "KEYWORDS.txt"
{"enstacken", def_enstacken},
#line 195 "KEYWORDS.txt"
{"uncons-two", def_uncons_HYPHEN_MINUS_two},
#line 143 "KEYWORDS.txt"
{"spiral_next", def_spiral_next},
#line 184 "KEYWORDS.txt"
{"/\\", def_SOLIDUS_REVERSE_SOLIDUS},
{""},
#line 81 "KEYWORDS.txt"
{"dinfrirst", def_dinfrirst},
#line 30 "KEYWORDS.txt"
{"/", fdiv_q},
{""}, {""},
#line 136 "KEYWORDS.txt"
#line 146 "KEYWORDS.txt"
{"size", def_size},
{""},
#line 87 "KEYWORDS.txt"
{"divmod", def_divmod},
#line 141 "KEYWORDS.txt"
{">>", def_GREATER_THAN_SIGN_GREATER_THAN_SIGN},
{""},
#line 161 "KEYWORDS.txt"
#line 155 "KEYWORDS.txt"
{"succ", def_succ},
#line 159 "KEYWORDS.txt"
{"swons", def_swons},
#line 148 "KEYWORDS.txt"
{"spiral_next", def_spiral_next},
#line 75 "KEYWORDS.txt"
{"ccccons", def_ccccons},
{""},
#line 82 "KEYWORDS.txt"
{"dinfrirst", def_dinfrirst},
{""},
#line 143 "KEYWORDS.txt"
{"second", def_second},
{""}, {""},
#line 167 "KEYWORDS.txt"
{"unit", def_unit},
{""},
#line 39 "KEYWORDS.txt"
{"concat", concat},
#line 75 "KEYWORDS.txt"
{"ccccons", def_ccccons},
#line 149 "KEYWORDS.txt"
{"stuncons", def_stuncons},
#line 78 "KEYWORDS.txt"
{"clop", def_clop},
#line 110 "KEYWORDS.txt"
{"nulco", def_nulco},
{""},
#line 51 "KEYWORDS.txt"
{"fn", fn},
{""},
#line 69 "KEYWORDS.txt"
{"app3", def_app3},
{""},
#line 147 "KEYWORDS.txt"
{"stackd", def_stackd},
{""},
#line 109 "KEYWORDS.txt"
{"not", def_not},
#line 70 "KEYWORDS.txt"
{"appN", def_appN},
{""}, {""}, {""},
#line 44 "KEYWORDS.txt"
{"inscribe", inscribe},
#line 93 "KEYWORDS.txt"
{"enstacken", def_enstacken},
{""},
#line 28 "KEYWORDS.txt"
{"-", sub},
#line 154 "KEYWORDS.txt"
{"tailrec", def_tailrec},
#line 144 "KEYWORDS.txt"
{"split_at", def_split_at},
#line 88 "KEYWORDS.txt"
{"down_to_zero", def_down_to_zero},
#line 154 "KEYWORDS.txt"
{"stuncons", def_stuncons},
#line 89 "KEYWORDS.txt"
{"drop", def_drop},
#line 145 "KEYWORDS.txt"
{"split_list", def_split_list},
{""},
#line 163 "KEYWORDS.txt"
{"unstack", def_unstack},
{""},
#line 141 "KEYWORDS.txt"
{"size", def_size},
#line 104 "KEYWORDS.txt"
{"infra", def_infra},
#line 58 "KEYWORDS.txt"
{"?", def_QUESTION_MARK},
#line 71 "KEYWORDS.txt"
{"at", def_at},
#line 137 "KEYWORDS.txt"
{"run", def_run},
{""}, {""},
#line 138 "KEYWORDS.txt"
{"second", def_second},
{""}, {""},
#line 112 "KEYWORDS.txt"
{"null", def_null},
#line 139 "KEYWORDS.txt"
#line 144 "KEYWORDS.txt"
{"shift", def_shift},
#line 105 "KEYWORDS.txt"
{"infrst", def_infrst},
{""},
#line 64 "KEYWORDS.txt"
{"abs", def_abs},
#line 167 "KEYWORDS.txt"
{"step", def_step},
#line 157 "KEYWORDS.txt"
{"third", def_third},
#line 86 "KEYWORDS.txt"
{"divmod", def_divmod},
#line 54 "KEYWORDS.txt"
{"lt", def_lt},
#line 128 "KEYWORDS.txt"
{"range_to_zero", def_range_to_zero},
#line 148 "KEYWORDS.txt"
{"step_zero", def_step_zero},
{""},
#line 26 "KEYWORDS.txt"
{"+", add},
#line 125 "KEYWORDS.txt"
{"product", def_product},
#line 62 "KEYWORDS.txt"
{"<{}", def_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET},
#line 68 "KEYWORDS.txt"
{"app2", def_app2},
#line 140 "KEYWORDS.txt"
{"shunt", def_shunt},
#line 134 "KEYWORDS.txt"
{"rollup", def_rollup},
#line 61 "KEYWORDS.txt"
{"--", def_HYPHEN_MINUS_HYPHEN_MINUS},
#line 131 "KEYWORDS.txt"
{"rolldown", def_rolldown},
#line 34 "KEYWORDS.txt"
{"bool", truthy},
#line 48 "KEYWORDS.txt"
{"stack", stack},
#line 166 "KEYWORDS.txt"
{"x", def_x},
#line 113 "KEYWORDS.txt"
{"of", def_of},
#line 23 "KEYWORDS.txt"
{"mod", fdiv_r},
{""},
#line 182 "KEYWORDS.txt"
{"_isnt_two_bools", def__isnt_two_bools},
{""},
#line 95 "KEYWORDS.txt"
{"flatten", def_flatten},
#line 37 "KEYWORDS.txt"
{"cmp", cmp_joyfunc},
#line 158 "KEYWORDS.txt"
{"tuck", def_tuck},
#line 133 "KEYWORDS.txt"
{"roll>", def_roll_GREATER_THAN_SIGN},
#line 15 "KEYWORDS.txt"
{"=", def_eq},
{""},
#line 175 "KEYWORDS.txt"
{"map", def_map},
{""},
#line 159 "KEYWORDS.txt"
{"unary", def_unary},
#line 32 "KEYWORDS.txt"
{"lshift", lshift},
#line 19 "KEYWORDS.txt"
{"<>", def_neq},
#line 98 "KEYWORDS.txt"
{"gcd", def_gcd},
#line 94 "KEYWORDS.txt"
{"first_two", def_first_two},
#line 188 "KEYWORDS.txt"
{"shift-pair", def_shift_HYPHEN_MINUS_pair},
#line 97 "KEYWORDS.txt"
{"fourth", def_fourth},
#line 114 "KEYWORDS.txt"
{"or", def_or},
{""},
#line 190 "KEYWORDS.txt"
{"quote-two", def_quote_HYPHEN_MINUS_two},
#line 171 "KEYWORDS.txt"
{"times", def_times},
#line 126 "KEYWORDS.txt"
{"quoted", def_quoted},
#line 21 "KEYWORDS.txt"
{">=", def_ge},
#line 162 "KEYWORDS.txt"
{"unquoted", def_unquoted},
{""},
#line 186 "KEYWORDS.txt"
{"_isnt_list", def__isnt_list},
#line 73 "KEYWORDS.txt"
{"b", def_b},
#line 111 "KEYWORDS.txt"
{"nullary", def_nullary},
{""},
#line 129 "KEYWORDS.txt"
{"reco", def_reco},
#line 181 "KEYWORDS.txt"
{"_isnt_bool", def__isnt_bool},
#line 169 "KEYWORDS.txt"
{"_step1", def__step1},
#line 173 "KEYWORDS.txt"
{"_times1", def__times1},
{""},
#line 102 "KEYWORDS.txt"
{"ifte", def_ifte},
#line 127 "KEYWORDS.txt"
{"range", def_range},
#line 65 "KEYWORDS.txt"
{"anamorphism", def_anamorphism},
#line 60 "KEYWORDS.txt"
{"++", def_PLUS_SIGN_PLUS_SIGN},
{""}, {""},
#line 42 "KEYWORDS.txt"
{"first", first},
#line 33 "KEYWORDS.txt"
{"rshift", rshift},
#line 56 "KEYWORDS.txt"
{"le", def_le},
#line 29 "KEYWORDS.txt"
{"sub", sub},
#line 47 "KEYWORDS.txt"
{"rest", rest},
#line 142 "KEYWORDS.txt"
{"small", def_small},
#line 74 "KEYWORDS.txt"
{"binary", def_binary},
#line 53 "KEYWORDS.txt"
{"gt", def_gt},
{""}, {""},
#line 153 "KEYWORDS.txt"
{"swons", def_swons},
#line 170 "KEYWORDS.txt"
{"_stept", def__stept},
#line 174 "KEYWORDS.txt"
{"_timest", def__timest},
#line 31 "KEYWORDS.txt"
{"div", fdiv_q},
#line 155 "KEYWORDS.txt"
{"take", def_take},
{""},
#line 168 "KEYWORDS.txt"
{"_step0", def__step0},
#line 172 "KEYWORDS.txt"
{"_times0", def__times0},
{""}, {""}, {""},
#line 45 "KEYWORDS.txt"
{"loop", loop},
#line 163 "KEYWORDS.txt"
{"third", def_third},
#line 77 "KEYWORDS.txt"
{"cleave", def_cleave},
#line 87 "KEYWORDS.txt"
{"down_to_zero", def_down_to_zero},
{"choice", def_choice},
#line 116 "KEYWORDS.txt"
{"of", def_of},
#line 142 "KEYWORDS.txt"
{"run", def_run},
#line 173 "KEYWORDS.txt"
{"step", def_step},
{""},
#line 96 "KEYWORDS.txt"
{"fork", def_fork},
#line 36 "KEYWORDS.txt"
{"clear", clear},
#line 98 "KEYWORDS.txt"
{"fourth", def_fourth},
{""}, {""},
#line 153 "KEYWORDS.txt"
{"step_zero", def_step_zero},
#line 145 "KEYWORDS.txt"
{"shunt", def_shunt},
#line 107 "KEYWORDS.txt"
{"infrst", def_infrst},
{""},
#line 112 "KEYWORDS.txt"
{"not", def_not},
#line 79 "KEYWORDS.txt"
{"clop", def_clop},
#line 113 "KEYWORDS.txt"
{"nulco", def_nulco},
{""}, {""},
#line 201 "KEYWORDS.txt"
{"min", def_min},
{""},
#line 188 "KEYWORDS.txt"
{"_isnt_two_bools", def__isnt_two_bools},
#line 26 "KEYWORDS.txt"
{"+", add},
#line 158 "KEYWORDS.txt"
{"swoncat", def_swoncat},
#line 128 "KEYWORDS.txt"
{"pow", def_pow},
#line 129 "KEYWORDS.txt"
{"pred", def_pred},
#line 200 "KEYWORDS.txt"
{"min-of-two", def_min_HYPHEN_MINUS_of_HYPHEN_MINUS_two},
#line 194 "KEYWORDS.txt"
{"uncons-pair", def_uncons_HYPHEN_MINUS_pair},
#line 110 "KEYWORDS.txt"
{"modulus", def_modulus},
#line 23 "KEYWORDS.txt"
{"mod", fdiv_r},
#line 95 "KEYWORDS.txt"
{"first_two", def_first_two},
#line 171 "KEYWORDS.txt"
{"while", def_while},
#line 24 "KEYWORDS.txt"
{"*", mul},
#line 130 "KEYWORDS.txt"
{"product", def_product},
#line 37 "KEYWORDS.txt"
{"cmp", cmp_joyfunc},
#line 134 "KEYWORDS.txt"
{"reco", def_reco},
{""}, {""},
#line 19 "KEYWORDS.txt"
{"<>", def_neq},
#line 62 "KEYWORDS.txt"
{"<{}", def_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET},
#line 104 "KEYWORDS.txt"
{"ifte", def_ifte},
{""},
#line 58 "KEYWORDS.txt"
{"?", def_QUESTION_MARK},
#line 117 "KEYWORDS.txt"
{"or", def_or},
#line 149 "KEYWORDS.txt"
{"split_at", def_split_at},
#line 120 "KEYWORDS.txt"
{"pick", def_pick},
#line 150 "KEYWORDS.txt"
{"split_list", def_split_list},
{""},
#line 169 "KEYWORDS.txt"
{"unstack", def_unstack},
#line 66 "KEYWORDS.txt"
{"and", def_and},
#line 118 "KEYWORDS.txt"
{"over", def_over},
{""},
#line 33 "KEYWORDS.txt"
{"rshift", rshift},
#line 191 "KEYWORDS.txt"
{"\\/", def_REVERSE_SOLIDUS_SOLIDUS},
#line 27 "KEYWORDS.txt"
{"add", add},
#line 70 "KEYWORDS.txt"
{"appN", def_appN},
#line 192 "KEYWORDS.txt"
{"_isnt_list", def__isnt_list},
#line 139 "KEYWORDS.txt"
{"rollup", def_rollup},
#line 56 "KEYWORDS.txt"
{"le", def_le},
#line 136 "KEYWORDS.txt"
{"rolldown", def_rolldown},
#line 47 "KEYWORDS.txt"
{"rest", rest},
#line 177 "KEYWORDS.txt"
{"times", def_times},
#line 32 "KEYWORDS.txt"
{"lshift", lshift},
{""}, {""},
#line 196 "KEYWORDS.txt"
{"quote-two", def_quote_HYPHEN_MINUS_two},
#line 42 "KEYWORDS.txt"
{"first", first},
#line 131 "KEYWORDS.txt"
{"quoted", def_quoted},
#line 60 "KEYWORDS.txt"
{"++", def_PLUS_SIGN_PLUS_SIGN},
#line 168 "KEYWORDS.txt"
{"unquoted", def_unquoted},
#line 34 "KEYWORDS.txt"
{"bool", truthy},
#line 138 "KEYWORDS.txt"
{"roll>", def_roll_GREATER_THAN_SIGN},
#line 73 "KEYWORDS.txt"
{"b", def_b},
#line 202 "KEYWORDS.txt"
{"on-non-empty-list", def_on_HYPHEN_MINUS_non_HYPHEN_MINUS_empty_HYPHEN_MINUS_list},
#line 99 "KEYWORDS.txt"
{"genrec", def_genrec},
#line 59 "KEYWORDS.txt"
{"!-", def_EXCLAMATION_MARK_HYPHEN_MINUS},
{"gcd", def_gcd},
#line 68 "KEYWORDS.txt"
{"app2", def_app2},
#line 106 "KEYWORDS.txt"
{"infra", def_infra},
#line 78 "KEYWORDS.txt"
{"cleave", def_cleave},
#line 54 "KEYWORDS.txt"
{"lt", def_lt},
{""},
#line 115 "KEYWORDS.txt"
{"null", def_null},
#line 187 "KEYWORDS.txt"
{"_isnt_bool", def__isnt_bool},
#line 17 "KEYWORDS.txt"
{"<", def_lt},
#line 135 "KEYWORDS.txt"
{"reverse", def_reverse},
{""},
#line 50 "KEYWORDS.txt"
{"swap", swap},
{""}, {""}, {""},
#line 25 "KEYWORDS.txt"
{"mul", mul},
{""},
#line 151 "KEYWORDS.txt"
{"swapd", def_swapd},
#line 17 "KEYWORDS.txt"
{"<", def_lt},
{""}, {""}, {""}, {""}, {""},
#line 152 "KEYWORDS.txt"
{"swoncat", def_swoncat},
{"stackd", def_stackd},
{""},
#line 29 "KEYWORDS.txt"
{"sub", sub},
#line 69 "KEYWORDS.txt"
{"app3", def_app3},
#line 157 "KEYWORDS.txt"
{"swapd", def_swapd},
#line 176 "KEYWORDS.txt"
{"_stept", def__stept},
#line 180 "KEYWORDS.txt"
{"_timest", def__timest},
{""}, {""}, {""},
#line 100 "KEYWORDS.txt"
{"genrec", def_genrec},
#line 160 "KEYWORDS.txt"
{"tailrec", def_tailrec},
{""},
#line 164 "KEYWORDS.txt"
{"tuck", def_tuck},
#line 36 "KEYWORDS.txt"
{"clear", clear},
#line 28 "KEYWORDS.txt"
{"-", sub},
#line 121 "KEYWORDS.txt"
{"pm", def_pm},
#line 133 "KEYWORDS.txt"
{"range_to_zero", def_range_to_zero},
{""}, {""},
#line 197 "KEYWORDS.txt"
{"empty?", def_empty_QUESTION_MARK},
#line 57 "KEYWORDS.txt"
{"ge", def_ge},
#line 64 "KEYWORDS.txt"
{"abs", def_abs},
{""}, {""},
#line 74 "KEYWORDS.txt"
{"binary", def_binary},
#line 190 "KEYWORDS.txt"
{"/\\", def_SOLIDUS_REVERSE_SOLIDUS},
{""},
#line 63 "KEYWORDS.txt"
{"<<{}", def_LESS_THAN_SIGN_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET},
#line 132 "KEYWORDS.txt"
{"roll<", def_roll_LESS_THAN_SIGN},
#line 24 "KEYWORDS.txt"
{"*", mul},
#line 117 "KEYWORDS.txt"
{"pm", def_pm},
{""}, {""}, {""}, {""}, {""}, {""},
#line 115 "KEYWORDS.txt"
{"over", def_over},
#line 140 "KEYWORDS.txt"
{"rrest", def_rrest},
{""},
#line 71 "KEYWORDS.txt"
{"at", def_at},
#line 156 "KEYWORDS.txt"
{"sum", def_sum},
#line 97 "KEYWORDS.txt"
{"fork", def_fork},
{""},
#line 22 "KEYWORDS.txt"
{"%", fdiv_r},
{""}, {""}, {""}, {""},
#line 35 "KEYWORDS.txt"
{"branch", branch},
#line 20 "KEYWORDS.txt"
{"<=", def_le},
#line 150 "KEYWORDS.txt"
{"sum", def_sum},
{""}, {""}, {""},
#line 57 "KEYWORDS.txt"
{"ge", def_ge},
#line 116 "KEYWORDS.txt"
{"pam", def_pam},
#line 114 "KEYWORDS.txt"
{"nullary", def_nullary},
#line 181 "KEYWORDS.txt"
{"map", def_map},
#line 67 "KEYWORDS.txt"
{"app1", def_app1},
#line 132 "KEYWORDS.txt"
{"range", def_range},
{""},
#line 135 "KEYWORDS.txt"
{"rrest", def_rrest},
#line 53 "KEYWORDS.txt"
{"gt", def_gt},
{""}, {""},
#line 137 "KEYWORDS.txt"
{"roll<", def_roll_LESS_THAN_SIGN},
{""},
#line 72 "KEYWORDS.txt"
{"average", def_average},
{""},
#line 183 "KEYWORDS.txt"
{"_\\/_", def___REVERSE_SOLIDUS_SOLIDUS__},
#line 100 "KEYWORDS.txt"
{"grabN", def_grabN},
{""},
#line 18 "KEYWORDS.txt"
{"!=", def_neq},
{""}, {""},
{""}, {""}, {""},
#line 175 "KEYWORDS.txt"
{"_step1", def__step1},
#line 179 "KEYWORDS.txt"
{"_map1", def__map1},
{""}, {""}, {""}, {""}, {""},
#line 49 "KEYWORDS.txt"
{"swaack", swaack},
{"_times1", def__times1},
{""}, {""},
#line 198 "KEYWORDS.txt"
{"max-of-two", def_max_HYPHEN_MINUS_of_HYPHEN_MINUS_two},
{""},
#line 146 "KEYWORDS.txt"
#line 96 "KEYWORDS.txt"
{"flatten", def_flatten},
#line 199 "KEYWORDS.txt"
{"max", def_max},
{""}, {""},
#line 174 "KEYWORDS.txt"
{"_step0", def__step0},
#line 178 "KEYWORDS.txt"
{"_times0", def__times0},
{""}, {""}, {""}, {""},
#line 59 "KEYWORDS.txt"
{"!-", def_EXCLAMATION_MARK_HYPHEN_MINUS},
#line 151 "KEYWORDS.txt"
{"sqr", def_sqr},
{""}, {""}, {""},
#line 156 "KEYWORDS.txt"
{"ternary", def_ternary},
{""}, {""}, {""}, {""}, {""}, {""},
#line 107 "KEYWORDS.txt"
{"make_generator", def_make_generator},
{""}, {""}, {""}, {""},
#line 101 "KEYWORDS.txt"
{"grba", def_grba},
#line 178 "KEYWORDS.txt"
{"_map0", def__map0},
{""}, {""},
#line 108 "KEYWORDS.txt"
{"neg", def_neg},
{""},
#line 176 "KEYWORDS.txt"
{"_map?", def__map_QUESTION_MARK},
{""}, {""}, {""}, {""}, {""}, {""},
#line 130 "KEYWORDS.txt"
{"reverse", def_reverse},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
{"<<", def_LESS_THAN_SIGN_LESS_THAN_SIGN},
{""}, {""},
#line 165 "KEYWORDS.txt"
{"while", def_while},
{"unary", def_unary},
#line 15 "KEYWORDS.txt"
{"=", def_eq},
{""},
#line 25 "KEYWORDS.txt"
{"mul", mul},
{""}, {""}, {""},
#line 162 "KEYWORDS.txt"
{"ternary", def_ternary},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 48 "KEYWORDS.txt"
{"stack", stack},
{""},
#line 21 "KEYWORDS.txt"
{">=", def_ge},
{""}, {""}, {""},
#line 49 "KEYWORDS.txt"
{"swaack", swaack},
#line 52 "KEYWORDS.txt"
{"eq", def_eq},
#line 55 "KEYWORDS.txt"
{"neq", def_neq},
#line 189 "KEYWORDS.txt"
{"_\\/_", def___REVERSE_SOLIDUS_SOLIDUS__},
{""},
#line 177 "KEYWORDS.txt"
#line 35 "KEYWORDS.txt"
{"branch", branch},
#line 61 "KEYWORDS.txt"
{"--", def_HYPHEN_MINUS_HYPHEN_MINUS},
{""}, {""},
#line 147 "KEYWORDS.txt"
{"small", def_small},
{""}, {""},
#line 111 "KEYWORDS.txt"
{"neg", def_neg},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
#line 161 "KEYWORDS.txt"
{"take", def_take},
{""}, {""},
#line 101 "KEYWORDS.txt"
{"getitem", def_getitem},
#line 119 "KEYWORDS.txt"
{"pam", def_pam},
{""}, {""}, {""},
#line 18 "KEYWORDS.txt"
{"!=", def_neq},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
#line 102 "KEYWORDS.txt"
{"grabN", def_grabN},
{""}, {""}, {""}, {""},
#line 183 "KEYWORDS.txt"
{"_mape", def__mape},
{""},
#line 106 "KEYWORDS.txt"
{"<<", def_LESS_THAN_SIGN_LESS_THAN_SIGN},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 180 "KEYWORDS.txt"
{""}, {""}, {""}, {""},
#line 186 "KEYWORDS.txt"
{"_map2", def__map2},
#line 65 "KEYWORDS.txt"
{"anamorphism", def_anamorphism},
#line 20 "KEYWORDS.txt"
{"<=", def_le},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 124 "KEYWORDS.txt"
{"pow", def_pow}
#line 182 "KEYWORDS.txt"
{"_map?", def__map_QUESTION_MARK},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
#line 103 "KEYWORDS.txt"
{"grba", def_grba},
{""}, {""}, {""}, {""},
#line 109 "KEYWORDS.txt"
{"make_generator", def_make_generator},
#line 185 "KEYWORDS.txt"
{"_map1", def__map1},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 184 "KEYWORDS.txt"
{"_map0", def__map0}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)

View File

@ -150,3 +150,9 @@ zip [null] [pop] [uncons-pair] [i cons] genrec
uncons-pair uncons-two [quote-two] dipd
uncons-two [uncons] ii swapd
quote-two unit cons
empty? dup null
max-of-two [>] [pop] [popd] ifte
max [uncons [max-of-two] step] on-non-empty-list
min-of-two [<] [pop] [popd] ifte
min [uncons [min-of-two] step] on-non-empty-list
on-non-empty-list [empty?] dip [first] branch

View File

@ -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" "? 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" "dipdd [dip] cons dipd" "dipddd [dipd] cons dipd" "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" "first_two uncons first" "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" "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 _isnt_list 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" "pow 1 roll> swap [*] cons times" "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] dupdip rest" "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 [false] [true] branch" "_isnt_two_bools [_isnt_bool] ii" "_\\/_ [_isnt_bool] [not] branch" "/\\ _isnt_two_bools [pop false] [] branch" "\\/ _isnt_two_bools [] [pop true] branch" "_isnt_list [] swoncat" "zip [null] [pop] [shift-pair] [i cons] genrec" "shift-pair uncons-two [quote-two] dipd" "uncons-two [uncons] ii swapd" "quote-two unit cons"))
(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" "choice [pop] [popd] branch" "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" "dipdd [dip] cons dipd" "dipddd [dipd] cons dipd" "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" "first_two uncons first" "flatten <{} [concat] step" "fork [i] app2" "fourth rest third" "gcd true [tuck mod dup 0 >] loop pop" "genrec [[genrec] ccccons] nullary swons concat ifte" "getitem [rest] times first" "grabN <{} [cons] times" "grba [stack popd] dip" "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 %" "modulus %" "neg 0 swap -" "not [true] [false] branch" "nulco [nullary] cons" "nullary [stack] dinfrirst" "null _isnt_list bool not" "of swap at" "or nulco [nullary] dip [true] branch" "over [dup] dip swap" "pam [i] map" "pick getitem" "pm [+] [-] clop" "popdd [pop] dipd" "popd [pop] dip" "popopdd [popop] dipd" "popopd [popop] dip" "popopop pop popop" "popop pop pop" "pow 1 roll> swap [*] cons times" "pred --" "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" "succ --" "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] dupdip rest" "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 [false] [true] branch" "_isnt_two_bools [_isnt_bool] ii" "_\\/_ [_isnt_bool] [not] branch" "/\\ _isnt_two_bools [pop false] [] branch" "\\/ _isnt_two_bools [] [pop true] branch" "_isnt_list [] swoncat" "zip [null] [pop] [uncons-pair] [i cons] genrec" "uncons-pair uncons-two [quote-two] dipd" "uncons-two [uncons] ii swapd" "quote-two unit cons" "empty? dup null" "max-of-two [>] [pop] [popd] ifte" "max empty? [uncons [max-of-two] step] [] branch"))