1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
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,
};
|