summaryrefslogtreecommitdiff
path: root/static/js/programs.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js/programs.js')
-rw-r--r--static/js/programs.js280
1 files changed, 280 insertions, 0 deletions
diff --git a/static/js/programs.js b/static/js/programs.js
new file mode 100644
index 0000000..fc8df1c
--- /dev/null
+++ b/static/js/programs.js
@@ -0,0 +1,280 @@
+const cons = `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`;
+
+const BINARY_INORDER_TRAVERSAL = `
+${cons}
+
+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
+`;
+
+const MERGE_SORT = `
+${cons}
+
+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
+`;
+
+const PROG_FACTORIAL = `YOU WON'T WANT TO MISS 'Hello, World!'
+
+DISCOVER HOW TO factorial WITH n
+RUMOR HAS IT
+ WHAT IF n IS ACTUALLY 0
+ SHOCKING DEVELOPMENT 1
+ LIES!
+ SHOCKING DEVELOPMENT
+ n TIMES factorial OF n MINUS 1
+END OF STORY
+
+EXPERTS CLAIM result TO BE factorial OF 10
+YOU WON'T WANT TO MISS 'Result is'
+YOU WON'T WANT TO MISS result
+
+PLEASE LIKE AND SUBSCRIBE`;
+
+const PROG_FIBONACCI = `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
+YOU WON'T WANT TO MISS 'First 10 Fibonacci numbers'
+EXPERTS CLAIM nothing TO BE fibonacci OF 0, 1, limit
+
+PLEASE LIKE AND SUBSCRIBE`;
+
+const PROGRAMS = {
+ "Merge Sort": MERGE_SORT,
+ Fibonacci: PROG_FIBONACCI,
+ "In-Order Traversal": BINARY_INORDER_TRAVERSAL,
+ Factorial: PROG_FACTORIAL,
+};