summaryrefslogtreecommitdiff
path: root/src/toys/tabloid/js/samples.js
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2026-01-07 19:29:30 -0800
committerElizabeth Hunt <me@liz.coffee>2026-01-07 19:29:30 -0800
commit91b7598b22f89319f64054daf42c950de3eb6451 (patch)
treeb337ad01c75e7ee88f287eda05522e72dd9a8dd5 /src/toys/tabloid/js/samples.js
parent49012297ea792a69501b74d8d83bd4be44d177da (diff)
downloadlizdotcoffee-91b7598b22f89319f64054daf42c950de3eb6451.tar.gz
lizdotcoffee-91b7598b22f89319f64054daf42c950de3eb6451.zip
Adding some of my favorite toys
Diffstat (limited to 'src/toys/tabloid/js/samples.js')
-rw-r--r--src/toys/tabloid/js/samples.js308
1 files changed, 308 insertions, 0 deletions
diff --git a/src/toys/tabloid/js/samples.js b/src/toys/tabloid/js/samples.js
new file mode 100644
index 0000000..dc7bd58
--- /dev/null
+++ b/src/toys/tabloid/js/samples.js
@@ -0,0 +1,308 @@
+const CONS_SNIPPET = [
+ "DISCOVER HOW TO cons WITH a, b",
+ "RUMOR HAS IT",
+ " DISCOVER HOW TO retrieve WITH is_first",
+ " RUMOR HAS IT",
+ " WHAT IF is_first IS ACTUALLY TOTALLY RIGHT",
+ " SHOCKING DEVELOPMENT a",
+ " LIES!",
+ " SHOCKING DEVELOPMENT b",
+ " END OF STORY",
+ " SHOCKING DEVELOPMENT retrieve",
+ "END OF STORY",
+].join('\n');
+
+const BINARY_INORDER_TRAVERSAL_PROGRAM = [
+ CONS_SNIPPET,
+ '',
+ "DISCOVER HOW TO in_order_traverse WITH node, is_dual_ptr",
+ "RUMOR HAS IT",
+ " EXPERTS CLAIM left TO BE node OF TOTALLY RIGHT",
+ " EXPERTS CLAIM right TO BE node OF COMPLETELY WRONG",
+ '',
+ " WHAT IF is_dual_ptr IS ACTUALLY COMPLETELY WRONG",
+ " RUMOR HAS IT",
+ " YOU WON'T WANT TO MISS left",
+ " WHAT IF right IS ACTUALLY COMPLETELY WRONG",
+ " 1",
+ " LIES!",
+ " in_order_traverse OF right, TOTALLY RIGHT",
+ " END OF STORY",
+ " LIES!",
+ " RUMOR HAS IT",
+ " WHAT IF left IS ACTUALLY COMPLETELY WRONG",
+ " 1",
+ " LIES!",
+ " in_order_traverse OF left, COMPLETELY WRONG",
+ '',
+ " WHAT IF right IS ACTUALLY COMPLETELY WRONG",
+ " 1",
+ " LIES!",
+ " in_order_traverse OF right, COMPLETELY WRONG",
+ " END OF STORY",
+ "END OF STORY",
+ '',
+ "EXPERTS CLAIM l TO BE cons OF 1, COMPLETELY WRONG",
+ "EXPERTS CLAIM r TO BE cons OF 3, COMPLETELY WRONG",
+ "EXPERTS CLAIM root TO BE cons OF l, r",
+ "EXPERTS CLAIM head TO BE cons OF 2, root",
+ '',
+ "in_order_traverse OF head, COMPLETELY WRONG",
+ '',
+ "PLEASE LIKE AND SUBSCRIBE",
+].join('\n');
+
+const MERGE_SORT_PROGRAM = [
+ CONS_SNIPPET,
+ '',
+ "DISCOVER HOW TO print WITH x",
+ "RUMOR HAS IT",
+ " YOU WON'T WANT TO MISS x",
+ "END OF STORY",
+ '',
+ "DISCOVER HOW TO map WITH fn, list",
+ "RUMOR HAS IT",
+ " WHAT IF list IS ACTUALLY COMPLETELY WRONG",
+ " SHOCKING DEVELOPMENT COMPLETELY WRONG",
+ " LIES!",
+ " RUMOR HAS IT",
+ " EXPERTS CLAIM car TO BE list OF TOTALLY RIGHT",
+ " EXPERTS CLAIM cdr TO BE list OF COMPLETELY WRONG",
+ " EXPERTS CLAIM new_car TO BE fn OF car",
+ " EXPERTS CLAIM rest_mapped TO BE map OF fn, cdr",
+ '',
+ " SHOCKING DEVELOPMENT cons OF new_car, rest_mapped",
+ " END OF STORY",
+ "END OF STORY",
+ '',
+ "DISCOVER HOW TO reduce WITH fn, list, accumulator",
+ "RUMOR HAS IT",
+ " WHAT IF list IS ACTUALLY COMPLETELY WRONG",
+ " SHOCKING DEVELOPMENT accumulator",
+ " LIES!",
+ " RUMOR HAS IT",
+ " EXPERTS CLAIM car TO BE list OF TOTALLY RIGHT",
+ " EXPERTS CLAIM cdr TO BE list OF COMPLETELY WRONG",
+ " EXPERTS CLAIM added_accumulator TO BE fn OF car, accumulator",
+ '',
+ " SHOCKING DEVELOPMENT reduce OF fn, cdr, added_accumulator",
+ " END OF STORY",
+ "END OF STORY",
+ '',
+ "DISCOVER HOW TO str_join_reducer WITH element, accumulator",
+ "RUMOR HAS IT",
+ " EXPERTS CLAIM added_comma TO BE element PLUS ', '",
+ " SHOCKING DEVELOPMENT added_comma PLUS accumulator",
+ "END OF STORY",
+ '',
+ "DISCOVER HOW TO join WITH list",
+ "RUMOR HAS IT",
+ " SHOCKING DEVELOPMENT reduce OF str_join_reducer, list, ''",
+ "END OF STORY",
+ '',
+ "DISCOVER HOW TO append WITH n, m",
+ "RUMOR HAS IT",
+ " WHAT IF n IS ACTUALLY COMPLETELY WRONG",
+ " SHOCKING DEVELOPMENT m",
+ " LIES!",
+ " RUMOR HAS IT",
+ " EXPERTS CLAIM car_n TO BE n OF TOTALLY RIGHT",
+ " EXPERTS CLAIM cdr_n TO BE n OF COMPLETELY WRONG",
+ " EXPERTS CLAIM appended TO BE append OF cdr_n, m",
+ '',
+ " SHOCKING DEVELOPMENT cons OF car_n, appended",
+ " END OF STORY",
+ "END OF STORY",
+ '',
+ "DISCOVER HOW TO reverse WITH l",
+ "RUMOR HAS IT",
+ " WHAT IF l IS ACTUALLY COMPLETELY WRONG",
+ " SHOCKING DEVELOPMENT COMPLETELY WRONG",
+ " LIES!",
+ " 1",
+ '',
+ " EXPERTS CLAIM car TO BE l OF TOTALLY RIGHT",
+ " EXPERTS CLAIM cdr TO BE l OF COMPLETELY WRONG",
+ " EXPERTS CLAIM reversed_cdr TO BE reverse OF cdr",
+ " EXPERTS CLAIM car_cons TO BE cons OF car, COMPLETELY WRONG",
+ '',
+ " SHOCKING DEVELOPMENT append OF reversed_cdr, car_cons",
+ "END OF STORY",
+ '',
+ "DISCOVER HOW TO merge WITH x, y",
+ "RUMOR HAS IT",
+ " WHAT IF x IS ACTUALLY COMPLETELY WRONG",
+ " SHOCKING DEVELOPMENT y",
+ " LIES!",
+ " 1",
+ '',
+ " WHAT IF y IS ACTUALLY COMPLETELY WRONG",
+ " RUMOR HAS IT",
+ " WHAT IF x IS ACTUALLY COMPLETELY WRONG",
+ " SHOCKING DEVELOPMENT COMPLETELY WRONG",
+ " LIES!",
+ " SHOCKING DEVELOPMENT x",
+ " END OF STORY",
+ " LIES!",
+ " 1",
+ '',
+ " EXPERTS CLAIM car_x TO BE x OF TOTALLY RIGHT",
+ " EXPERTS CLAIM car_y TO BE y OF TOTALLY RIGHT",
+ " EXPERTS CLAIM cdr_x TO BE x OF COMPLETELY WRONG",
+ " EXPERTS CLAIM cdr_y TO BE y OF COMPLETELY WRONG",
+ '',
+ " EXPERTS CLAIM x_gt_y TO BE car_x BEATS car_y",
+ '',
+ " WHAT IF x_gt_y IS ACTUALLY TOTALLY RIGHT",
+ " RUMOR HAS IT",
+ " EXPERTS CLAIM rest_x_merge_y TO BE merge OF cdr_x, y",
+ " SHOCKING DEVELOPMENT cons OF car_x, rest_x_merge_y",
+ " END OF STORY",
+ " LIES!",
+ " RUMOR HAS IT",
+ " EXPERTS CLAIM x_merge_rest_y TO BE merge OF x, cdr_y",
+ " SHOCKING DEVELOPMENT cons OF car_y, x_merge_rest_y",
+ " END OF STORY",
+ "END OF STORY",
+ '',
+ "DISCOVER HOW TO split_middle_helper WITH slow, fast, mid_to_head",
+ "RUMOR HAS IT",
+ " WHAT IF fast IS ACTUALLY COMPLETELY WRONG",
+ " RUMOR HAS IT",
+ " EXPERTS CLAIM head_to_mid TO BE reverse OF mid_to_head",
+ " SHOCKING DEVELOPMENT cons OF head_to_mid, slow",
+ " END OF STORY",
+ " LIES!",
+ " 1",
+ '',
+ " EXPERTS CLAIM fast_cdr TO BE fast OF COMPLETELY WRONG",
+ " EXPERTS CLAIM slow_car TO BE slow OF TOTALLY RIGHT",
+ " EXPERTS CLAIM slow_cdr TO BE slow OF COMPLETELY WRONG",
+ '',
+ " WHAT IF fast_cdr IS ACTUALLY COMPLETELY WRONG",
+ " RUMOR HAS IT",
+ " EXPERTS CLAIM mid_to_head_plus_slow TO BE cons OF slow_car, mid_to_head",
+ " EXPERTS CLAIM head_to_mid_plus_slow TO BE reverse OF mid_to_head_plus_slow",
+ '',
+ " SHOCKING DEVELOPMENT cons OF head_to_mid_plus_slow, slow_cdr",
+ " END OF STORY",
+ " LIES!",
+ " 1",
+ '',
+ " EXPERTS CLAIM fast_cddr TO BE fast_cdr OF COMPLETELY WRONG",
+ " EXPERTS CLAIM slow_car_mid_to_head TO BE cons OF slow_car, mid_to_head",
+ '',
+ " SHOCKING DEVELOPMENT split_middle_helper OF slow_cdr, fast_cddr, slow_car_mid_to_head",
+ "END OF STORY",
+ '',
+ "DISCOVER HOW TO split_middle WITH start",
+ "RUMOR HAS IT",
+ " EXPERTS CLAIM cdr TO BE start OF COMPLETELY WRONG",
+ '',
+ " SHOCKING DEVELOPMENT split_middle_helper OF start, cdr, COMPLETELY WRONG",
+ "END OF STORY",
+ '',
+ "DISCOVER HOW TO sort WITH root",
+ "RUMOR HAS IT",
+ " WHAT IF root IS ACTUALLY COMPLETELY WRONG",
+ " SHOCKING DEVELOPMENT root",
+ " LIES!",
+ " 1",
+ '',
+ " EXPERTS CLAIM root_cdr TO BE root OF COMPLETELY WRONG",
+ " WHAT IF root_cdr IS ACTUALLY COMPLETELY WRONG",
+ " SHOCKING DEVELOPMENT root",
+ " LIES!",
+ " 1",
+ '',
+ " EXPERTS CLAIM left_right_cons_cell TO BE split_middle OF root",
+ " EXPERTS CLAIM left TO BE left_right_cons_cell OF TOTALLY RIGHT",
+ " EXPERTS CLAIM right TO BE left_right_cons_cell OF COMPLETELY WRONG",
+ " EXPERTS CLAIM left_s TO BE sort OF left",
+ " EXPERTS CLAIM right_s TO BE sort OF right",
+ '',
+ " SHOCKING DEVELOPMENT merge OF left_s, right_s",
+ "END OF STORY",
+ '',
+ "EXPERTS CLAIM a_3 TO BE cons OF 3, COMPLETELY WRONG",
+ "EXPERTS CLAIM a_2 TO BE cons OF 1, a_3",
+ "EXPERTS CLAIM a_1 TO BE cons OF -2, a_2",
+ "EXPERTS CLAIM a_0 TO BE cons OF 5, a_1",
+ "EXPERTS CLAIM b_3 TO BE cons OF 2, a_0",
+ "EXPERTS CLAIM b_2 TO BE cons OF 7, b_3",
+ "EXPERTS CLAIM b_1 TO BE cons OF 3, b_2",
+ "EXPERTS CLAIM b_0 TO BE cons OF -1, b_1",
+ '',
+ "EXPERTS CLAIM b_sorted TO BE sort OF b_0",
+ '',
+ "YOU WON'T WANT TO MISS join OF b_sorted",
+ '',
+ "PLEASE LIKE AND SUBSCRIBE",
+].join('\n');
+
+export const SAMPLE_PROGRAMS = [
+ {
+ id: 'fibonacci',
+ label: 'Fibonacci',
+ code: [
+ "DISCOVER HOW TO fibonacci WITH a, b, n",
+ "RUMOR HAS IT",
+ " WHAT IF n SMALLER THAN 1",
+ " SHOCKING DEVELOPMENT b",
+ " LIES! RUMOR HAS IT",
+ " YOU WON'T WANT TO MISS b",
+ " SHOCKING DEVELOPMENT",
+ " fibonacci OF b, a PLUS b, n MINUS 1",
+ " END OF STORY",
+ "END OF STORY",
+ "",
+ "EXPERTS CLAIM limit TO BE 10",
+ "",
+ "fibonacci OF 0, 1, limit",
+ "",
+ "PLEASE LIKE AND SUBSCRIBE",
+ ].join('\n'),
+ },
+ {
+ id: 'countdown',
+ label: 'Countdown',
+ code: [
+ "EXPERTS CLAIM start TO BE 4",
+ "YOU WON'T WANT TO MISS 't minus 5...'",
+ "",
+ "DISCOVER HOW TO countdown WITH current",
+ "RUMOR HAS IT",
+ " WHAT IF current SMALLER THAN 1 RUMOR HAS IT",
+ " SHOCKING DEVELOPMENT 'Blastoff!'",
+ " END OF STORY",
+ " LIES! RUMOR HAS IT",
+ " YOU WON'T WANT TO MISS current",
+ " SHOCKING DEVELOPMENT countdown OF current MINUS 1",
+ " END OF STORY",
+ "END OF STORY",
+ "",
+ "YOU WON'T WANT TO MISS countdown OF start",
+ "",
+ "PLEASE LIKE AND SUBSCRIBE",
+ ].join('\n'),
+ },
+ {
+ id: 'hello',
+ label: 'Hello!',
+ code: [
+ "YOU WON'T WANT TO MISS ('Hello, ' PLUS (LATEST NEWS ON 'What is your name?')) PLUS '!'",
+ "",
+ "PLEASE LIKE AND SUBSCRIBE",
+ ].join('\n'),
+ },
+ {
+ id: 'binary-inorder-traversal',
+ label: 'Binary tree in-order traversal',
+ code: BINARY_INORDER_TRAVERSAL_PROGRAM,
+ },
+ {
+ id: 'merge-sort',
+ label: 'Merge sort linked list',
+ code: MERGE_SORT_PROGRAM,
+ },
+];