Interpreter and library.
Révision | c130026895b5f450aaa765d13040ca46a4eaca8d (tree) |
---|---|
l'heure | 2022-10-15 13:01:18 |
Auteur | ![]() |
Commiter | Simon Forman |
Mostly done with addition and subtraction.
@@ -21,15 +21,7 @@ | ||
21 | 21 | "execution_count": 1, |
22 | 22 | "id": "08a49b81", |
23 | 23 | "metadata": {}, |
24 | - "outputs": [ | |
25 | - { | |
26 | - "name": "stdout", | |
27 | - "output_type": "stream", | |
28 | - "text": [ | |
29 | - "2147483648" | |
30 | - ] | |
31 | - } | |
32 | - ], | |
24 | + "outputs": [], | |
33 | 25 | "source": [ |
34 | 26 | "1 31 << " |
35 | 27 | ] |
@@ -47,13 +39,7 @@ | ||
47 | 39 | "execution_count": 2, |
48 | 40 | "id": "b34d58ef", |
49 | 41 | "metadata": {}, |
50 | - "outputs": [ | |
51 | - { | |
52 | - "name": "stdout", | |
53 | - "output_type": "stream", | |
54 | - "text": [] | |
55 | - } | |
56 | - ], | |
42 | + "outputs": [], | |
57 | 43 | "source": [ |
58 | 44 | "unit [base] swoncat inscribe" |
59 | 45 | ] |
@@ -79,13 +65,7 @@ | ||
79 | 65 | "execution_count": 3, |
80 | 66 | "id": "35476eac", |
81 | 67 | "metadata": {}, |
82 | - "outputs": [ | |
83 | - { | |
84 | - "name": "stdout", | |
85 | - "output_type": "stream", | |
86 | - "text": [] | |
87 | - } | |
88 | - ], | |
68 | + "outputs": [], | |
89 | 69 | "source": [ |
90 | 70 | "[valid_digit [0 >] [base <] &&] inscribe" |
91 | 71 | ] |
@@ -95,15 +75,7 @@ | ||
95 | 75 | "execution_count": 4, |
96 | 76 | "id": "02a48806", |
97 | 77 | "metadata": {}, |
98 | - "outputs": [ | |
99 | - { | |
100 | - "name": "stdout", | |
101 | - "output_type": "stream", | |
102 | - "text": [ | |
103 | - "32 true 1232147483648 false" | |
104 | - ] | |
105 | - } | |
106 | - ], | |
78 | + "outputs": [], | |
107 | 79 | "source": [ |
108 | 80 | "32 valid_digit 1232147483648 valid_digit" |
109 | 81 | ] |
@@ -113,13 +85,7 @@ | ||
113 | 85 | "execution_count": 5, |
114 | 86 | "id": "03a8fe65", |
115 | 87 | "metadata": {}, |
116 | - "outputs": [ | |
117 | - { | |
118 | - "name": "stdout", | |
119 | - "output_type": "stream", | |
120 | - "text": [] | |
121 | - } | |
122 | - ], | |
88 | + "outputs": [], | |
123 | 89 | "source": [ |
124 | 90 | "clear" |
125 | 91 | ] |
@@ -146,15 +112,7 @@ | ||
146 | 112 | "execution_count": 6, |
147 | 113 | "id": "3fc98ccd", |
148 | 114 | "metadata": {}, |
149 | - "outputs": [ | |
150 | - { | |
151 | - "name": "stdout", | |
152 | - "output_type": "stream", | |
153 | - "text": [ | |
154 | - "1797196498 5748904729" | |
155 | - ] | |
156 | - } | |
157 | - ], | |
115 | + "outputs": [], | |
158 | 116 | "source": [ |
159 | 117 | "12345678901234567890 base divmod swap" |
160 | 118 | ] |
@@ -164,15 +122,7 @@ | ||
164 | 122 | "execution_count": 7, |
165 | 123 | "id": "b838c4cb", |
166 | 124 | "metadata": {}, |
167 | - "outputs": [ | |
168 | - { | |
169 | - "name": "stdout", | |
170 | - "output_type": "stream", | |
171 | - "text": [ | |
172 | - "1797196498 1453937433 2" | |
173 | - ] | |
174 | - } | |
175 | - ], | |
125 | + "outputs": [], | |
176 | 126 | "source": [ |
177 | 127 | "base divmod swap" |
178 | 128 | ] |
@@ -182,15 +132,7 @@ | ||
182 | 132 | "execution_count": 8, |
183 | 133 | "id": "42c9d92d", |
184 | 134 | "metadata": {}, |
185 | - "outputs": [ | |
186 | - { | |
187 | - "name": "stdout", | |
188 | - "output_type": "stream", | |
189 | - "text": [ | |
190 | - "1797196498 1453937433 2 0" | |
191 | - ] | |
192 | - } | |
193 | - ], | |
135 | + "outputs": [], | |
194 | 136 | "source": [ |
195 | 137 | "base divmod swap" |
196 | 138 | ] |
@@ -210,15 +152,7 @@ | ||
210 | 152 | "execution_count": 9, |
211 | 153 | "id": "faaac9d6", |
212 | 154 | "metadata": {}, |
213 | - "outputs": [ | |
214 | - { | |
215 | - "name": "stdout", | |
216 | - "output_type": "stream", | |
217 | - "text": [ | |
218 | - "1312754386 1501085485 57659106 105448366 58" | |
219 | - ] | |
220 | - } | |
221 | - ], | |
155 | + "outputs": [], | |
222 | 156 | "source": [ |
223 | 157 | "clear 1234567890123456789012345678901234567890\n", |
224 | 158 | "\n", |
@@ -238,15 +172,7 @@ | ||
238 | 172 | "execution_count": 10, |
239 | 173 | "id": "2a613f36", |
240 | 174 | "metadata": {}, |
241 | - "outputs": [ | |
242 | - { | |
243 | - "name": "stdout", | |
244 | - "output_type": "stream", | |
245 | - "text": [ | |
246 | - "[58 105448366 57659106 1501085485 1312754386]" | |
247 | - ] | |
248 | - } | |
249 | - ], | |
175 | + "outputs": [], | |
250 | 176 | "source": [ |
251 | 177 | "clear [1234567890123456789012345678901234567890]\n", |
252 | 178 | "\n", |
@@ -435,7 +361,7 @@ | ||
435 | 361 | "id": "c89e6054", |
436 | 362 | "metadata": {}, |
437 | 363 | "source": [ |
438 | - "#### `to_bigint`" | |
364 | + "#### `to-bigint`" | |
439 | 365 | ] |
440 | 366 | }, |
441 | 367 | { |
@@ -451,7 +377,7 @@ | ||
451 | 377 | } |
452 | 378 | ], |
453 | 379 | "source": [ |
454 | - "[to_bigint [!-] [abs digitalize] cleave cons] inscribe" | |
380 | + "[to-bigint [!-] [abs digitalize] cleave cons] inscribe" | |
455 | 381 | ] |
456 | 382 | }, |
457 | 383 | { |
@@ -477,7 +403,7 @@ | ||
477 | 403 | } |
478 | 404 | ], |
479 | 405 | "source": [ |
480 | - "clear 1234567890123456789012345678901234567890 to_bigint" | |
406 | + "clear 1234567890123456789012345678901234567890 to-bigint" | |
481 | 407 | ] |
482 | 408 | }, |
483 | 409 | { |
@@ -503,7 +429,7 @@ | ||
503 | 429 | } |
504 | 430 | ], |
505 | 431 | "source": [ |
506 | - "clear -1234567890123456789012345678901234567890 to_bigint" | |
432 | + "clear -1234567890123456789012345678901234567890 to-bigint" | |
507 | 433 | ] |
508 | 434 | }, |
509 | 435 | { |
@@ -653,7 +579,7 @@ | ||
653 | 579 | "id": "7497680b", |
654 | 580 | "metadata": {}, |
655 | 581 | "source": [ |
656 | - "#### `prep` and `from_bigint'`" | |
582 | + "#### `prep` and `from-bigint'`" | |
657 | 583 | ] |
658 | 584 | }, |
659 | 585 | { |
@@ -672,7 +598,7 @@ | ||
672 | 598 | ], |
673 | 599 | "source": [ |
674 | 600 | "[prep rest 1 0 rolldown] inscribe\n", |
675 | - "[from_bigint' [F] step popd] inscribe\n", | |
601 | + "[from-bigint' [F] step popd] inscribe\n", | |
676 | 602 | "[F [G] [H] clop popdd] inscribe\n", |
677 | 603 | "[G popop base *] inscribe\n", |
678 | 604 | "[H rolldown * +] inscribe" |
@@ -695,7 +621,7 @@ | ||
695 | 621 | "source": [ |
696 | 622 | "clear 1 0 [1312754386 1501085485 57659106 105448366 58]\n", |
697 | 623 | "\n", |
698 | - "from_bigint'" | |
624 | + "from-bigint'" | |
699 | 625 | ] |
700 | 626 | }, |
701 | 627 | { |
@@ -713,7 +639,7 @@ | ||
713 | 639 | } |
714 | 640 | ], |
715 | 641 | "source": [ |
716 | - "to_bigint" | |
642 | + "to-bigint" | |
717 | 643 | ] |
718 | 644 | }, |
719 | 645 | { |
@@ -749,7 +675,7 @@ | ||
749 | 675 | } |
750 | 676 | ], |
751 | 677 | "source": [ |
752 | - "from_bigint'" | |
678 | + "from-bigint'" | |
753 | 679 | ] |
754 | 680 | }, |
755 | 681 | { |
@@ -767,7 +693,7 @@ | ||
767 | 693 | } |
768 | 694 | ], |
769 | 695 | "source": [ |
770 | - "to_bigint prep from_bigint'" | |
696 | + "to-bigint prep from-bigint'" | |
771 | 697 | ] |
772 | 698 | }, |
773 | 699 | { |
@@ -811,7 +737,7 @@ | ||
811 | 737 | } |
812 | 738 | ], |
813 | 739 | "source": [ |
814 | - "to_bigint prep from_bigint'" | |
740 | + "to-bigint prep from-bigint'" | |
815 | 741 | ] |
816 | 742 | }, |
817 | 743 | { |
@@ -837,7 +763,7 @@ | ||
837 | 763 | } |
838 | 764 | ], |
839 | 765 | "source": [ |
840 | - "to_bigint" | |
766 | + "to-bigint" | |
841 | 767 | ] |
842 | 768 | }, |
843 | 769 | { |
@@ -863,7 +789,7 @@ | ||
863 | 789 | } |
864 | 790 | ], |
865 | 791 | "source": [ |
866 | - "[first] [prep from_bigint'] cleave" | |
792 | + "[first] [prep from-bigint'] cleave" | |
867 | 793 | ] |
868 | 794 | }, |
869 | 795 | { |
@@ -899,9 +825,9 @@ | ||
899 | 825 | "source": [ |
900 | 826 | "This gives:\n", |
901 | 827 | "\n", |
902 | - " foo == [first] [prep from_bigint'] cleave\n", | |
828 | + " foo == [first] [prep from-bigint'] cleave\n", | |
903 | 829 | " bar == swap [] [neg] branch\n", |
904 | - " from_bigint == foo bar" | |
830 | + " from-bigint == foo bar" | |
905 | 831 | ] |
906 | 832 | }, |
907 | 833 | { |
@@ -909,7 +835,7 @@ | ||
909 | 835 | "id": "8bffedec", |
910 | 836 | "metadata": {}, |
911 | 837 | "source": [ |
912 | - "#### `from_bigint`" | |
838 | + "#### `from-bigint`" | |
913 | 839 | ] |
914 | 840 | }, |
915 | 841 | { |
@@ -926,9 +852,9 @@ | ||
926 | 852 | ], |
927 | 853 | "source": [ |
928 | 854 | "clear\n", |
929 | - "[foo [first] [prep from_bigint'] cleave] inscribe\n", | |
855 | + "[foo [first] [prep from-bigint'] cleave] inscribe\n", | |
930 | 856 | "[bar swap [neg] [] branch] inscribe\n", |
931 | - "[from_bigint foo bar] inscribe" | |
857 | + "[from-bigint foo bar] inscribe" | |
932 | 858 | ] |
933 | 859 | }, |
934 | 860 | { |
@@ -946,7 +872,7 @@ | ||
946 | 872 | } |
947 | 873 | ], |
948 | 874 | "source": [ |
949 | - "1234567890123456789012345678901234567890 to_bigint from_bigint" | |
875 | + "1234567890123456789012345678901234567890 to-bigint from-bigint" | |
950 | 876 | ] |
951 | 877 | }, |
952 | 878 | { |
@@ -964,7 +890,7 @@ | ||
964 | 890 | } |
965 | 891 | ], |
966 | 892 | "source": [ |
967 | - "neg to_bigint from_bigint" | |
893 | + "neg to-bigint from-bigint" | |
968 | 894 | ] |
969 | 895 | }, |
970 | 896 | { |
@@ -992,7 +918,7 @@ | ||
992 | 918 | "\n", |
993 | 919 | "Let's figure out how to add two lists of digits (we will assume that the signs are the same.) We need to put an inital `false` value for a carry flag, and then there's a `genrec`.\n", |
994 | 920 | "\n", |
995 | - " initial-carry ≡ false rollup\n", | |
921 | + " initial-carry == false rollup\n", | |
996 | 922 | " add-digits' ≡ [P] [THEN] [R0] [R1] genrec\n", |
997 | 923 | " \n", |
998 | 924 | " add-digits ≡ initial-carry add-digits'" |
@@ -1278,7 +1204,7 @@ | ||
1278 | 1204 | "id": "223cee8e", |
1279 | 1205 | "metadata": {}, |
1280 | 1206 | "source": [ |
1281 | - "#### `bool_to_int`" | |
1207 | + "#### `bool-to-int`" | |
1282 | 1208 | ] |
1283 | 1209 | }, |
1284 | 1210 | { |
@@ -1296,7 +1222,7 @@ | ||
1296 | 1222 | "source": [ |
1297 | 1223 | "clear\n", |
1298 | 1224 | "\n", |
1299 | - "[bool_to_int [0] [1] branch] inscribe" | |
1225 | + "[bool-to-int [0] [1] branch] inscribe" | |
1300 | 1226 | ] |
1301 | 1227 | }, |
1302 | 1228 | { |
@@ -1322,8 +1248,8 @@ | ||
1322 | 1248 | } |
1323 | 1249 | ], |
1324 | 1250 | "source": [ |
1325 | - "false bool_to_int\n", | |
1326 | - "true bool_to_int" | |
1251 | + "false bool-to-int\n", | |
1252 | + "true bool-to-int" | |
1327 | 1253 | ] |
1328 | 1254 | }, |
1329 | 1255 | { |
@@ -1351,7 +1277,7 @@ | ||
1351 | 1277 | "source": [ |
1352 | 1278 | "clear\n", |
1353 | 1279 | "\n", |
1354 | - "false 1 2 [bool_to_int] dipd + +" | |
1280 | + "false 1 2 [bool-to-int] dipd + +" | |
1355 | 1281 | ] |
1356 | 1282 | }, |
1357 | 1283 | { |
@@ -1371,7 +1297,7 @@ | ||
1371 | 1297 | "source": [ |
1372 | 1298 | "clear\n", |
1373 | 1299 | "\n", |
1374 | - "true 1 2 [bool_to_int] dipd + +" | |
1300 | + "true 1 2 [bool-to-int] dipd + +" | |
1375 | 1301 | ] |
1376 | 1302 | }, |
1377 | 1303 | { |
@@ -1379,7 +1305,7 @@ | ||
1379 | 1305 | "id": "89b971c9", |
1380 | 1306 | "metadata": {}, |
1381 | 1307 | "source": [ |
1382 | - "So the first part of `F` is `[bool_to_int] dipd + +` to get the total, then we need to do\n", | |
1308 | + "So the first part of `F` is `[bool-to-int] dipd + +` to get the total, then we need to do\n", | |
1383 | 1309 | "\n", |
1384 | 1310 | "`base mod` to get the new digit and `base >=` to get the new carry flag:" |
1385 | 1311 | ] |
@@ -1433,7 +1359,7 @@ | ||
1433 | 1359 | "source": [ |
1434 | 1360 | "Put it all together and we have:\n", |
1435 | 1361 | "\n", |
1436 | - " _add-with-carry0 ≡ [bool_to_int] dipd + +\n", | |
1362 | + " _add-with-carry0 ≡ [bool-to-int] dipd + +\n", | |
1437 | 1363 | " _add-with-carry1 ≡ base [mod] [>=] clop\n", |
1438 | 1364 | "\n", |
1439 | 1365 | " add-with-carry ≡ _add-with-carry0 _add-with-carry1\n" |
@@ -1461,7 +1387,7 @@ | ||
1461 | 1387 | ], |
1462 | 1388 | "source": [ |
1463 | 1389 | "clear\n", |
1464 | - "[_add-with-carry0 [bool_to_int] dipd + +] inscribe\n", | |
1390 | + "[_add-with-carry0 [bool-to-int] dipd + +] inscribe\n", | |
1465 | 1391 | "[_add-with-carry1 base [mod] [>=] clop] inscribe\n", |
1466 | 1392 | "[add-with-carry _add-with-carry0 _add-with-carry1] inscribe" |
1467 | 1393 | ] |
@@ -1556,7 +1482,7 @@ | ||
1556 | 1482 | }, |
1557 | 1483 | { |
1558 | 1484 | "cell_type": "code", |
1559 | - "execution_count": 91, | |
1485 | + "execution_count": 57, | |
1560 | 1486 | "id": "b46a62ba", |
1561 | 1487 | "metadata": {}, |
1562 | 1488 | "outputs": [ |
@@ -2257,7 +2183,7 @@ | ||
2257 | 2183 | "source": [ |
2258 | 2184 | "clear\n", |
2259 | 2185 | "\n", |
2260 | - "123 to_bigint 456 to_bigint" | |
2186 | + "123 to-bigint 456 to-bigint" | |
2261 | 2187 | ] |
2262 | 2188 | }, |
2263 | 2189 | { |
@@ -2295,7 +2221,7 @@ | ||
2295 | 2221 | "source": [ |
2296 | 2222 | "clear\n", |
2297 | 2223 | "\n", |
2298 | - "123 to_bigint 456 to_bigint" | |
2224 | + "123 to-bigint 456 to-bigint" | |
2299 | 2225 | ] |
2300 | 2226 | }, |
2301 | 2227 | { |
@@ -2413,7 +2339,7 @@ | ||
2413 | 2339 | } |
2414 | 2340 | ], |
2415 | 2341 | "source": [ |
2416 | - "base -- to_bigint" | |
2342 | + "base -- to-bigint" | |
2417 | 2343 | ] |
2418 | 2344 | }, |
2419 | 2345 | { |
@@ -2436,8 +2362,8 @@ | ||
2436 | 2362 | }, |
2437 | 2363 | { |
2438 | 2364 | "cell_type": "code", |
2439 | - "execution_count": 95, | |
2440 | - "id": "d8832fda", | |
2365 | + "execution_count": 90, | |
2366 | + "id": "dac1c858", | |
2441 | 2367 | "metadata": {}, |
2442 | 2368 | "outputs": [ |
2443 | 2369 | { |
@@ -2560,7 +2486,7 @@ | ||
2560 | 2486 | }, |
2561 | 2487 | { |
2562 | 2488 | "cell_type": "markdown", |
2563 | - "id": "fdc6fc09", | |
2489 | + "id": "184f6b2e", | |
2564 | 2490 | "metadata": {}, |
2565 | 2491 | "source": [ |
2566 | 2492 | "But this doesn't go quite far enough, I think.\n", |
@@ -2570,7 +2496,7 @@ | ||
2570 | 2496 | }, |
2571 | 2497 | { |
2572 | 2498 | "cell_type": "markdown", |
2573 | - "id": "94249f95", | |
2499 | + "id": "7598e48c", | |
2574 | 2500 | "metadata": {}, |
2575 | 2501 | "source": [ |
2576 | 2502 | "I think `R0` will pretty much always do:\n", |
@@ -2580,7 +2506,7 @@ | ||
2580 | 2506 | }, |
2581 | 2507 | { |
2582 | 2508 | "cell_type": "markdown", |
2583 | - "id": "ecc190e3", | |
2509 | + "id": "b721354e", | |
2584 | 2510 | "metadata": {}, |
2585 | 2511 | "source": [ |
2586 | 2512 | "And so it should be refactored further to something like:\n", |
@@ -2619,7 +2545,7 @@ | ||
2619 | 2545 | }, |
2620 | 2546 | { |
2621 | 2547 | "cell_type": "markdown", |
2622 | - "id": "c9fd7e21", | |
2548 | + "id": "aa6e7586", | |
2623 | 2549 | "metadata": {}, |
2624 | 2550 | "source": [ |
2625 | 2551 | "Let's figure out the new form.\n", |
@@ -2642,7 +2568,7 @@ | ||
2642 | 2568 | }, |
2643 | 2569 | { |
2644 | 2570 | "cell_type": "markdown", |
2645 | - "id": "64118784", | |
2571 | + "id": "0a5e4669", | |
2646 | 2572 | "metadata": {}, |
2647 | 2573 | "source": [ |
2648 | 2574 | "Let's not over think it.\n", |
@@ -2653,7 +2579,7 @@ | ||
2653 | 2579 | }, |
2654 | 2580 | { |
2655 | 2581 | "cell_type": "markdown", |
2656 | - "id": "90310271", | |
2582 | + "id": "9d7aad63", | |
2657 | 2583 | "metadata": {}, |
2658 | 2584 | "source": [ |
2659 | 2585 | "With:\n", |
@@ -2665,7 +2591,7 @@ | ||
2665 | 2591 | }, |
2666 | 2592 | { |
2667 | 2593 | "cell_type": "code", |
2668 | - "execution_count": 93, | |
2594 | + "execution_count": 91, | |
2669 | 2595 | "id": "55f64814", |
2670 | 2596 | "metadata": {}, |
2671 | 2597 | "outputs": [ |
@@ -2681,7 +2607,7 @@ | ||
2681 | 2607 | }, |
2682 | 2608 | { |
2683 | 2609 | "cell_type": "code", |
2684 | - "execution_count": 91, | |
2610 | + "execution_count": 92, | |
2685 | 2611 | "id": "04e2d0d0", |
2686 | 2612 | "metadata": {}, |
2687 | 2613 | "outputs": [ |
@@ -2699,7 +2625,7 @@ | ||
2699 | 2625 | }, |
2700 | 2626 | { |
2701 | 2627 | "cell_type": "code", |
2702 | - "execution_count": 92, | |
2628 | + "execution_count": 93, | |
2703 | 2629 | "id": "a28d9323", |
2704 | 2630 | "metadata": {}, |
2705 | 2631 | "outputs": [ |
@@ -2717,7 +2643,7 @@ | ||
2717 | 2643 | }, |
2718 | 2644 | { |
2719 | 2645 | "cell_type": "markdown", |
2720 | - "id": "e8433d46", | |
2646 | + "id": "004b7aca", | |
2721 | 2647 | "metadata": {}, |
2722 | 2648 | "source": [ |
2723 | 2649 | "So to get from \n", |
@@ -2737,8 +2663,8 @@ | ||
2737 | 2663 | }, |
2738 | 2664 | { |
2739 | 2665 | "cell_type": "code", |
2740 | - "execution_count": 103, | |
2741 | - "id": "77e6c03a", | |
2666 | + "execution_count": 94, | |
2667 | + "id": "bc16275c", | |
2742 | 2668 | "metadata": {}, |
2743 | 2669 | "outputs": [ |
2744 | 2670 | { |
@@ -2765,8 +2691,8 @@ | ||
2765 | 2691 | }, |
2766 | 2692 | { |
2767 | 2693 | "cell_type": "code", |
2768 | - "execution_count": 104, | |
2769 | - "id": "1119f1e6", | |
2694 | + "execution_count": 95, | |
2695 | + "id": "c517da7a", | |
2770 | 2696 | "metadata": {}, |
2771 | 2697 | "outputs": [ |
2772 | 2698 | { |
@@ -2783,7 +2709,7 @@ | ||
2783 | 2709 | }, |
2784 | 2710 | { |
2785 | 2711 | "cell_type": "code", |
2786 | - "execution_count": 105, | |
2712 | + "execution_count": 96, | |
2787 | 2713 | "id": "3f482224", |
2788 | 2714 | "metadata": {}, |
2789 | 2715 | "outputs": [ |
@@ -2802,14 +2728,14 @@ | ||
2802 | 2728 | { |
2803 | 2729 | "cell_type": "code", |
2804 | 2730 | "execution_count": null, |
2805 | - "id": "02bfc247", | |
2731 | + "id": "3a504505", | |
2806 | 2732 | "metadata": {}, |
2807 | 2733 | "outputs": [], |
2808 | 2734 | "source": [] |
2809 | 2735 | }, |
2810 | 2736 | { |
2811 | 2737 | "cell_type": "code", |
2812 | - "execution_count": 106, | |
2738 | + "execution_count": 97, | |
2813 | 2739 | "id": "4b90e664", |
2814 | 2740 | "metadata": {}, |
2815 | 2741 | "outputs": [ |
@@ -2831,7 +2757,7 @@ | ||
2831 | 2757 | }, |
2832 | 2758 | { |
2833 | 2759 | "cell_type": "markdown", |
2834 | - "id": "089fc71c", | |
2760 | + "id": "173bf5b7", | |
2835 | 2761 | "metadata": {}, |
2836 | 2762 | "source": [ |
2837 | 2763 | "Compare the above with what we wanted:\n", |
@@ -2853,15 +2779,15 @@ | ||
2853 | 2779 | { |
2854 | 2780 | "cell_type": "code", |
2855 | 2781 | "execution_count": null, |
2856 | - "id": "929366cc", | |
2782 | + "id": "c816fa4b", | |
2857 | 2783 | "metadata": {}, |
2858 | 2784 | "outputs": [], |
2859 | 2785 | "source": [] |
2860 | 2786 | }, |
2861 | 2787 | { |
2862 | 2788 | "cell_type": "code", |
2863 | - "execution_count": 107, | |
2864 | - "id": "a3b7e48a", | |
2789 | + "execution_count": 98, | |
2790 | + "id": "ff88e2c1", | |
2865 | 2791 | "metadata": {}, |
2866 | 2792 | "outputs": [ |
2867 | 2793 | { |
@@ -2885,8 +2811,8 @@ | ||
2885 | 2811 | }, |
2886 | 2812 | { |
2887 | 2813 | "cell_type": "code", |
2888 | - "execution_count": 108, | |
2889 | - "id": "313ce113", | |
2814 | + "execution_count": 99, | |
2815 | + "id": "941a4426", | |
2890 | 2816 | "metadata": { |
2891 | 2817 | "scrolled": true |
2892 | 2818 | }, |
@@ -2905,8 +2831,8 @@ | ||
2905 | 2831 | }, |
2906 | 2832 | { |
2907 | 2833 | "cell_type": "code", |
2908 | - "execution_count": 110, | |
2909 | - "id": "aca55d10", | |
2834 | + "execution_count": 100, | |
2835 | + "id": "917600dd", | |
2910 | 2836 | "metadata": {}, |
2911 | 2837 | "outputs": [ |
2912 | 2838 | { |
@@ -2922,18 +2848,9 @@ | ||
2922 | 2848 | ] |
2923 | 2849 | }, |
2924 | 2850 | { |
2925 | - "cell_type": "markdown", | |
2926 | - "id": "92a471fa", | |
2927 | - "metadata": {}, | |
2928 | - "source": [ | |
2929 | - " combine-two-lists == build-two-list-combiner [i cons] genrec\n", | |
2930 | - " " | |
2931 | - ] | |
2932 | - }, | |
2933 | - { | |
2934 | 2851 | "cell_type": "code", |
2935 | - "execution_count": 111, | |
2936 | - "id": "0fa2607d", | |
2852 | + "execution_count": 101, | |
2853 | + "id": "21f6b0e4", | |
2937 | 2854 | "metadata": {}, |
2938 | 2855 | "outputs": [ |
2939 | 2856 | { |
@@ -2953,8 +2870,8 @@ | ||
2953 | 2870 | }, |
2954 | 2871 | { |
2955 | 2872 | "cell_type": "code", |
2956 | - "execution_count": 112, | |
2957 | - "id": "026095a5", | |
2873 | + "execution_count": 102, | |
2874 | + "id": "4a8819fc", | |
2958 | 2875 | "metadata": {}, |
2959 | 2876 | "outputs": [ |
2960 | 2877 | { |
@@ -2971,8 +2888,8 @@ | ||
2971 | 2888 | }, |
2972 | 2889 | { |
2973 | 2890 | "cell_type": "code", |
2974 | - "execution_count": 113, | |
2975 | - "id": "15974737", | |
2891 | + "execution_count": 103, | |
2892 | + "id": "5d451c1e", | |
2976 | 2893 | "metadata": {}, |
2977 | 2894 | "outputs": [ |
2978 | 2895 | { |
@@ -2989,8 +2906,8 @@ | ||
2989 | 2906 | }, |
2990 | 2907 | { |
2991 | 2908 | "cell_type": "code", |
2992 | - "execution_count": 114, | |
2993 | - "id": "525bc382", | |
2909 | + "execution_count": 104, | |
2910 | + "id": "28fefe8a", | |
2994 | 2911 | "metadata": {}, |
2995 | 2912 | "outputs": [ |
2996 | 2913 | { |
@@ -3004,7 +2921,7 @@ | ||
3004 | 2921 | "source": [ |
3005 | 2922 | "clear\n", |
3006 | 2923 | "\n", |
3007 | - "123456 to_bigint\n", | |
2924 | + "123456 to-bigint\n", | |
3008 | 2925 | "\n", |
3009 | 2926 | "\n", |
3010 | 2927 | "\n" |
@@ -3012,7 +2929,7 @@ | ||
3012 | 2929 | }, |
3013 | 2930 | { |
3014 | 2931 | "cell_type": "code", |
3015 | - "execution_count": 117, | |
2932 | + "execution_count": 105, | |
3016 | 2933 | "id": "fa37c40c", |
3017 | 2934 | "metadata": {}, |
3018 | 2935 | "outputs": [ |
@@ -3037,20 +2954,8 @@ | ||
3037 | 2954 | ] |
3038 | 2955 | }, |
3039 | 2956 | { |
3040 | - "cell_type": "markdown", | |
3041 | - "id": "5f739deb", | |
3042 | - "metadata": {}, | |
3043 | - "source": [ | |
3044 | - "\n", | |
3045 | - " combine-two-lists == build-two-list-combiner [i cons] genrec\n", | |
3046 | - " \n", | |
3047 | - " build-two-list-combiner == [[[ditch-empty-list] swoncat] dip [pop] swoncat] dip [uncons-two] [dipd] sandwich [[ifte] ccons [P'] swons [P] swap ] dip\n", | |
3048 | - " " | |
3049 | - ] | |
3050 | - }, | |
3051 | - { | |
3052 | 2957 | "cell_type": "code", |
3053 | - "execution_count": 118, | |
2958 | + "execution_count": 106, | |
3054 | 2959 | "id": "850a1421", |
3055 | 2960 | "metadata": {}, |
3056 | 2961 | "outputs": [ |
@@ -3079,8 +2984,8 @@ | ||
3079 | 2984 | }, |
3080 | 2985 | { |
3081 | 2986 | "cell_type": "code", |
3082 | - "execution_count": 119, | |
3083 | - "id": "52bb5921", | |
2987 | + "execution_count": 107, | |
2988 | + "id": "4b6005fc", | |
3084 | 2989 | "metadata": {}, |
3085 | 2990 | "outputs": [ |
3086 | 2991 | { |
@@ -3097,7 +3002,7 @@ | ||
3097 | 3002 | }, |
3098 | 3003 | { |
3099 | 3004 | "cell_type": "code", |
3100 | - "execution_count": 120, | |
3005 | + "execution_count": 108, | |
3101 | 3006 | "id": "c616033e", |
3102 | 3007 | "metadata": {}, |
3103 | 3008 | "outputs": [ |
@@ -3121,7 +3026,7 @@ | ||
3121 | 3026 | }, |
3122 | 3027 | { |
3123 | 3028 | "cell_type": "code", |
3124 | - "execution_count": 121, | |
3029 | + "execution_count": 109, | |
3125 | 3030 | "id": "1a18ddd7", |
3126 | 3031 | "metadata": {}, |
3127 | 3032 | "outputs": [ |
@@ -3139,7 +3044,7 @@ | ||
3139 | 3044 | }, |
3140 | 3045 | { |
3141 | 3046 | "cell_type": "code", |
3142 | - "execution_count": 122, | |
3047 | + "execution_count": 110, | |
3143 | 3048 | "id": "3c639487", |
3144 | 3049 | "metadata": {}, |
3145 | 3050 | "outputs": [ |
@@ -3157,7 +3062,7 @@ | ||
3157 | 3062 | }, |
3158 | 3063 | { |
3159 | 3064 | "cell_type": "code", |
3160 | - "execution_count": 123, | |
3065 | + "execution_count": 111, | |
3161 | 3066 | "id": "c9222cab", |
3162 | 3067 | "metadata": {}, |
3163 | 3068 | "outputs": [ |
@@ -3175,7 +3080,7 @@ | ||
3175 | 3080 | }, |
3176 | 3081 | { |
3177 | 3082 | "cell_type": "code", |
3178 | - "execution_count": 124, | |
3083 | + "execution_count": 112, | |
3179 | 3084 | "id": "f3bc8d28", |
3180 | 3085 | "metadata": {}, |
3181 | 3086 | "outputs": [ |
@@ -3191,7 +3096,7 @@ | ||
3191 | 3096 | }, |
3192 | 3097 | { |
3193 | 3098 | "cell_type": "markdown", |
3194 | - "id": "c85d6fe6", | |
3099 | + "id": "82b7bf9a", | |
3195 | 3100 | "metadata": {}, |
3196 | 3101 | "source": [ |
3197 | 3102 | "#### Demonstrate `add-bigints`" |
@@ -3199,8 +3104,8 @@ | ||
3199 | 3104 | }, |
3200 | 3105 | { |
3201 | 3106 | "cell_type": "code", |
3202 | - "execution_count": 125, | |
3203 | - "id": "3da6266b", | |
3107 | + "execution_count": 113, | |
3108 | + "id": "b4a71b70", | |
3204 | 3109 | "metadata": {}, |
3205 | 3110 | "outputs": [ |
3206 | 3111 | { |
@@ -3212,13 +3117,13 @@ | ||
3212 | 3117 | } |
3213 | 3118 | ], |
3214 | 3119 | "source": [ |
3215 | - "1234 999 [to_bigint] ii " | |
3120 | + "1234 999 [to-bigint] ii " | |
3216 | 3121 | ] |
3217 | 3122 | }, |
3218 | 3123 | { |
3219 | 3124 | "cell_type": "code", |
3220 | - "execution_count": 126, | |
3221 | - "id": "7d38dbaa", | |
3125 | + "execution_count": 114, | |
3126 | + "id": "6aba84ae", | |
3222 | 3127 | "metadata": {}, |
3223 | 3128 | "outputs": [ |
3224 | 3129 | { |
@@ -3235,8 +3140,8 @@ | ||
3235 | 3140 | }, |
3236 | 3141 | { |
3237 | 3142 | "cell_type": "code", |
3238 | - "execution_count": 127, | |
3239 | - "id": "e65f7ff9", | |
3143 | + "execution_count": 115, | |
3144 | + "id": "d5dc4dce", | |
3240 | 3145 | "metadata": {}, |
3241 | 3146 | "outputs": [ |
3242 | 3147 | { |
@@ -3248,13 +3153,13 @@ | ||
3248 | 3153 | } |
3249 | 3154 | ], |
3250 | 3155 | "source": [ |
3251 | - "from_bigint" | |
3156 | + "from-bigint" | |
3252 | 3157 | ] |
3253 | 3158 | }, |
3254 | 3159 | { |
3255 | 3160 | "cell_type": "code", |
3256 | - "execution_count": 128, | |
3257 | - "id": "5d385f35", | |
3161 | + "execution_count": 116, | |
3162 | + "id": "2e9ab2c2", | |
3258 | 3163 | "metadata": {}, |
3259 | 3164 | "outputs": [ |
3260 | 3165 | { |
@@ -3271,16 +3176,24 @@ | ||
3271 | 3176 | }, |
3272 | 3177 | { |
3273 | 3178 | "cell_type": "code", |
3274 | - "execution_count": null, | |
3275 | - "id": "fb7da91a", | |
3179 | + "execution_count": 117, | |
3180 | + "id": "080d81a3", | |
3276 | 3181 | "metadata": {}, |
3277 | - "outputs": [], | |
3278 | - "source": [] | |
3182 | + "outputs": [ | |
3183 | + { | |
3184 | + "name": "stdout", | |
3185 | + "output_type": "stream", | |
3186 | + "text": [] | |
3187 | + } | |
3188 | + ], | |
3189 | + "source": [ | |
3190 | + "clear" | |
3191 | + ] | |
3279 | 3192 | }, |
3280 | 3193 | { |
3281 | 3194 | "cell_type": "code", |
3282 | 3195 | "execution_count": null, |
3283 | - "id": "679e9df6", | |
3196 | + "id": "7b237ca8", | |
3284 | 3197 | "metadata": {}, |
3285 | 3198 | "outputs": [], |
3286 | 3199 | "source": [] |
@@ -3288,7 +3201,7 @@ | ||
3288 | 3201 | { |
3289 | 3202 | "cell_type": "code", |
3290 | 3203 | "execution_count": null, |
3291 | - "id": "d4d2850a", | |
3204 | + "id": "46f50f12", | |
3292 | 3205 | "metadata": {}, |
3293 | 3206 | "outputs": [], |
3294 | 3207 | "source": [] |
@@ -3296,7 +3209,7 @@ | ||
3296 | 3209 | { |
3297 | 3210 | "cell_type": "code", |
3298 | 3211 | "execution_count": null, |
3299 | - "id": "c4da9da4", | |
3212 | + "id": "7e035a2c", | |
3300 | 3213 | "metadata": {}, |
3301 | 3214 | "outputs": [], |
3302 | 3215 | "source": [] |
@@ -3304,7 +3217,7 @@ | ||
3304 | 3217 | { |
3305 | 3218 | "cell_type": "code", |
3306 | 3219 | "execution_count": null, |
3307 | - "id": "55a37610", | |
3220 | + "id": "f2492e55", | |
3308 | 3221 | "metadata": {}, |
3309 | 3222 | "outputs": [], |
3310 | 3223 | "source": [] |
@@ -3312,7 +3225,7 @@ | ||
3312 | 3225 | { |
3313 | 3226 | "cell_type": "code", |
3314 | 3227 | "execution_count": null, |
3315 | - "id": "c637a7ea", | |
3228 | + "id": "8dfddc89", | |
3316 | 3229 | "metadata": {}, |
3317 | 3230 | "outputs": [], |
3318 | 3231 | "source": [] |
@@ -3320,7 +3233,7 @@ | ||
3320 | 3233 | { |
3321 | 3234 | "cell_type": "code", |
3322 | 3235 | "execution_count": null, |
3323 | - "id": "b56cf709", | |
3236 | + "id": "7f2bf0e5", | |
3324 | 3237 | "metadata": {}, |
3325 | 3238 | "outputs": [], |
3326 | 3239 | "source": [] |
@@ -3370,7 +3283,7 @@ | ||
3370 | 3283 | }, |
3371 | 3284 | { |
3372 | 3285 | "cell_type": "code", |
3373 | - "execution_count": 112, | |
3286 | + "execution_count": 118, | |
3374 | 3287 | "id": "9c50bd24", |
3375 | 3288 | "metadata": {}, |
3376 | 3289 | "outputs": [ |
@@ -3386,7 +3299,7 @@ | ||
3386 | 3299 | }, |
3387 | 3300 | { |
3388 | 3301 | "cell_type": "code", |
3389 | - "execution_count": 113, | |
3302 | + "execution_count": 119, | |
3390 | 3303 | "id": "4c1dbabd", |
3391 | 3304 | "metadata": {}, |
3392 | 3305 | "outputs": [ |
@@ -3405,7 +3318,7 @@ | ||
3405 | 3318 | }, |
3406 | 3319 | { |
3407 | 3320 | "cell_type": "code", |
3408 | - "execution_count": 114, | |
3321 | + "execution_count": 120, | |
3409 | 3322 | "id": "ef683ade", |
3410 | 3323 | "metadata": {}, |
3411 | 3324 | "outputs": [ |
@@ -3424,7 +3337,7 @@ | ||
3424 | 3337 | }, |
3425 | 3338 | { |
3426 | 3339 | "cell_type": "code", |
3427 | - "execution_count": 115, | |
3340 | + "execution_count": 121, | |
3428 | 3341 | "id": "ff52920a", |
3429 | 3342 | "metadata": {}, |
3430 | 3343 | "outputs": [ |
@@ -3443,7 +3356,7 @@ | ||
3443 | 3356 | }, |
3444 | 3357 | { |
3445 | 3358 | "cell_type": "code", |
3446 | - "execution_count": 116, | |
3359 | + "execution_count": 122, | |
3447 | 3360 | "id": "be946f53", |
3448 | 3361 | "metadata": {}, |
3449 | 3362 | "outputs": [ |
@@ -3469,7 +3382,7 @@ | ||
3469 | 3382 | }, |
3470 | 3383 | { |
3471 | 3384 | "cell_type": "code", |
3472 | - "execution_count": 117, | |
3385 | + "execution_count": 123, | |
3473 | 3386 | "id": "056e3072", |
3474 | 3387 | "metadata": {}, |
3475 | 3388 | "outputs": [ |
@@ -3485,7 +3398,7 @@ | ||
3485 | 3398 | }, |
3486 | 3399 | { |
3487 | 3400 | "cell_type": "code", |
3488 | - "execution_count": 118, | |
3401 | + "execution_count": 124, | |
3489 | 3402 | "id": "02d4e38e", |
3490 | 3403 | "metadata": {}, |
3491 | 3404 | "outputs": [ |
@@ -3503,7 +3416,7 @@ | ||
3503 | 3416 | }, |
3504 | 3417 | { |
3505 | 3418 | "cell_type": "code", |
3506 | - "execution_count": 119, | |
3419 | + "execution_count": 125, | |
3507 | 3420 | "id": "5683eb84", |
3508 | 3421 | "metadata": {}, |
3509 | 3422 | "outputs": [ |
@@ -3527,7 +3440,7 @@ | ||
3527 | 3440 | }, |
3528 | 3441 | { |
3529 | 3442 | "cell_type": "code", |
3530 | - "execution_count": 120, | |
3443 | + "execution_count": 126, | |
3531 | 3444 | "id": "a4e1f728", |
3532 | 3445 | "metadata": {}, |
3533 | 3446 | "outputs": [ |
@@ -3551,7 +3464,7 @@ | ||
3551 | 3464 | }, |
3552 | 3465 | { |
3553 | 3466 | "cell_type": "code", |
3554 | - "execution_count": 121, | |
3467 | + "execution_count": 127, | |
3555 | 3468 | "id": "dc7c151a", |
3556 | 3469 | "metadata": {}, |
3557 | 3470 | "outputs": [ |
@@ -3611,7 +3524,7 @@ | ||
3611 | 3524 | }, |
3612 | 3525 | { |
3613 | 3526 | "cell_type": "code", |
3614 | - "execution_count": 122, | |
3527 | + "execution_count": 128, | |
3615 | 3528 | "id": "50c2669a", |
3616 | 3529 | "metadata": {}, |
3617 | 3530 | "outputs": [ |
@@ -3627,7 +3540,7 @@ | ||
3627 | 3540 | }, |
3628 | 3541 | { |
3629 | 3542 | "cell_type": "code", |
3630 | - "execution_count": 123, | |
3543 | + "execution_count": 129, | |
3631 | 3544 | "id": "1bbf3465", |
3632 | 3545 | "metadata": {}, |
3633 | 3546 | "outputs": [ |
@@ -3647,7 +3560,7 @@ | ||
3647 | 3560 | }, |
3648 | 3561 | { |
3649 | 3562 | "cell_type": "code", |
3650 | - "execution_count": 124, | |
3563 | + "execution_count": 130, | |
3651 | 3564 | "id": "5a9347f6", |
3652 | 3565 | "metadata": {}, |
3653 | 3566 | "outputs": [ |
@@ -3665,7 +3578,7 @@ | ||
3665 | 3578 | }, |
3666 | 3579 | { |
3667 | 3580 | "cell_type": "code", |
3668 | - "execution_count": 125, | |
3581 | + "execution_count": 131, | |
3669 | 3582 | "id": "69b18847", |
3670 | 3583 | "metadata": {}, |
3671 | 3584 | "outputs": [ |
@@ -3682,7 +3595,7 @@ | ||
3682 | 3595 | }, |
3683 | 3596 | { |
3684 | 3597 | "cell_type": "code", |
3685 | - "execution_count": 126, | |
3598 | + "execution_count": 132, | |
3686 | 3599 | "id": "0b29370d", |
3687 | 3600 | "metadata": {}, |
3688 | 3601 | "outputs": [ |
@@ -3702,7 +3615,7 @@ | ||
3702 | 3615 | }, |
3703 | 3616 | { |
3704 | 3617 | "cell_type": "code", |
3705 | - "execution_count": 127, | |
3618 | + "execution_count": 133, | |
3706 | 3619 | "id": "32ce148e", |
3707 | 3620 | "metadata": {}, |
3708 | 3621 | "outputs": [ |
@@ -3722,7 +3635,7 @@ | ||
3722 | 3635 | }, |
3723 | 3636 | { |
3724 | 3637 | "cell_type": "code", |
3725 | - "execution_count": 128, | |
3638 | + "execution_count": 134, | |
3726 | 3639 | "id": "4efc8f76", |
3727 | 3640 | "metadata": {}, |
3728 | 3641 | "outputs": [ |
@@ -3749,7 +3662,7 @@ | ||
3749 | 3662 | "\n", |
3750 | 3663 | "we have three lists. The first is a possibly-empty list of pairs to compare.\n", |
3751 | 3664 | "\n", |
3752 | - "THe second two are the tails of the original lists.\n", | |
3665 | + "The second two are the tails of the original lists.\n", | |
3753 | 3666 | "\n", |
3754 | 3667 | "if the first list is non-empty then the second list must be empty so the whole function should return true\n", |
3755 | 3668 | "\n", |
@@ -3778,7 +3691,7 @@ | ||
3778 | 3691 | }, |
3779 | 3692 | { |
3780 | 3693 | "cell_type": "code", |
3781 | - "execution_count": 129, | |
3694 | + "execution_count": 135, | |
3782 | 3695 | "id": "7d973f7f", |
3783 | 3696 | "metadata": {}, |
3784 | 3697 | "outputs": [ |
@@ -3807,7 +3720,7 @@ | ||
3807 | 3720 | }, |
3808 | 3721 | { |
3809 | 3722 | "cell_type": "code", |
3810 | - "execution_count": 130, | |
3723 | + "execution_count": 136, | |
3811 | 3724 | "id": "9239e0c4", |
3812 | 3725 | "metadata": {}, |
3813 | 3726 | "outputs": [ |
@@ -3836,7 +3749,7 @@ | ||
3836 | 3749 | }, |
3837 | 3750 | { |
3838 | 3751 | "cell_type": "code", |
3839 | - "execution_count": 131, | |
3752 | + "execution_count": 137, | |
3840 | 3753 | "id": "0c58a6e0", |
3841 | 3754 | "metadata": {}, |
3842 | 3755 | "outputs": [ |
@@ -3892,7 +3805,7 @@ | ||
3892 | 3805 | }, |
3893 | 3806 | { |
3894 | 3807 | "cell_type": "code", |
3895 | - "execution_count": 132, | |
3808 | + "execution_count": 138, | |
3896 | 3809 | "id": "7f302157", |
3897 | 3810 | "metadata": {}, |
3898 | 3811 | "outputs": [ |
@@ -3912,7 +3825,7 @@ | ||
3912 | 3825 | }, |
3913 | 3826 | { |
3914 | 3827 | "cell_type": "code", |
3915 | - "execution_count": 133, | |
3828 | + "execution_count": 139, | |
3916 | 3829 | "id": "d25ef02e", |
3917 | 3830 | "metadata": {}, |
3918 | 3831 | "outputs": [ |
@@ -3940,7 +3853,7 @@ | ||
3940 | 3853 | }, |
3941 | 3854 | { |
3942 | 3855 | "cell_type": "code", |
3943 | - "execution_count": 134, | |
3856 | + "execution_count": 140, | |
3944 | 3857 | "id": "06e0ffcb", |
3945 | 3858 | "metadata": {}, |
3946 | 3859 | "outputs": [ |
@@ -3967,7 +3880,7 @@ | ||
3967 | 3880 | }, |
3968 | 3881 | { |
3969 | 3882 | "cell_type": "code", |
3970 | - "execution_count": 135, | |
3883 | + "execution_count": 141, | |
3971 | 3884 | "id": "b2428f49", |
3972 | 3885 | "metadata": {}, |
3973 | 3886 | "outputs": [ |
@@ -3985,7 +3898,7 @@ | ||
3985 | 3898 | }, |
3986 | 3899 | { |
3987 | 3900 | "cell_type": "code", |
3988 | - "execution_count": 136, | |
3901 | + "execution_count": 142, | |
3989 | 3902 | "id": "4ef5f503", |
3990 | 3903 | "metadata": {}, |
3991 | 3904 | "outputs": [ |
@@ -4011,7 +3924,7 @@ | ||
4011 | 3924 | }, |
4012 | 3925 | { |
4013 | 3926 | "cell_type": "code", |
4014 | - "execution_count": 246, | |
3927 | + "execution_count": 143, | |
4015 | 3928 | "id": "7f060f83", |
4016 | 3929 | "metadata": {}, |
4017 | 3930 | "outputs": [ |
@@ -4046,7 +3959,7 @@ | ||
4046 | 3959 | }, |
4047 | 3960 | { |
4048 | 3961 | "cell_type": "code", |
4049 | - "execution_count": 138, | |
3962 | + "execution_count": 144, | |
4050 | 3963 | "id": "8d74a801", |
4051 | 3964 | "metadata": {}, |
4052 | 3965 | "outputs": [ |
@@ -4064,7 +3977,7 @@ | ||
4064 | 3977 | }, |
4065 | 3978 | { |
4066 | 3979 | "cell_type": "code", |
4067 | - "execution_count": 139, | |
3980 | + "execution_count": 145, | |
4068 | 3981 | "id": "0104d2b0", |
4069 | 3982 | "metadata": {}, |
4070 | 3983 | "outputs": [ |
@@ -4072,7 +3985,7 @@ | ||
4072 | 3985 | "name": "stdout", |
4073 | 3986 | "output_type": "stream", |
4074 | 3987 | "text": [ |
4075 | - "false" | |
3988 | + "true" | |
4076 | 3989 | ] |
4077 | 3990 | } |
4078 | 3991 | ], |
@@ -4082,7 +3995,7 @@ | ||
4082 | 3995 | }, |
4083 | 3996 | { |
4084 | 3997 | "cell_type": "code", |
4085 | - "execution_count": 140, | |
3998 | + "execution_count": 146, | |
4086 | 3999 | "id": "4728d141", |
4087 | 4000 | "metadata": {}, |
4088 | 4001 | "outputs": [ |
@@ -4090,7 +4003,7 @@ | ||
4090 | 4003 | "name": "stdout", |
4091 | 4004 | "output_type": "stream", |
4092 | 4005 | "text": [ |
4093 | - "false" | |
4006 | + "true" | |
4094 | 4007 | ] |
4095 | 4008 | } |
4096 | 4009 | ], |
@@ -4100,7 +4013,7 @@ | ||
4100 | 4013 | }, |
4101 | 4014 | { |
4102 | 4015 | "cell_type": "code", |
4103 | - "execution_count": 141, | |
4016 | + "execution_count": 147, | |
4104 | 4017 | "id": "bfb5e62c", |
4105 | 4018 | "metadata": {}, |
4106 | 4019 | "outputs": [ |
@@ -4116,7 +4029,7 @@ | ||
4116 | 4029 | }, |
4117 | 4030 | { |
4118 | 4031 | "cell_type": "code", |
4119 | - "execution_count": 142, | |
4032 | + "execution_count": 148, | |
4120 | 4033 | "id": "7983881c", |
4121 | 4034 | "metadata": {}, |
4122 | 4035 | "outputs": [ |
@@ -4134,7 +4047,7 @@ | ||
4134 | 4047 | }, |
4135 | 4048 | { |
4136 | 4049 | "cell_type": "code", |
4137 | - "execution_count": 143, | |
4050 | + "execution_count": 149, | |
4138 | 4051 | "id": "677757c5", |
4139 | 4052 | "metadata": {}, |
4140 | 4053 | "outputs": [ |
@@ -4142,7 +4055,7 @@ | ||
4142 | 4055 | "name": "stdout", |
4143 | 4056 | "output_type": "stream", |
4144 | 4057 | "text": [ |
4145 | - "false" | |
4058 | + "true" | |
4146 | 4059 | ] |
4147 | 4060 | } |
4148 | 4061 | ], |
@@ -4152,7 +4065,7 @@ | ||
4152 | 4065 | }, |
4153 | 4066 | { |
4154 | 4067 | "cell_type": "code", |
4155 | - "execution_count": 144, | |
4068 | + "execution_count": 150, | |
4156 | 4069 | "id": "5691f813", |
4157 | 4070 | "metadata": {}, |
4158 | 4071 | "outputs": [ |
@@ -4160,7 +4073,7 @@ | ||
4160 | 4073 | "name": "stdout", |
4161 | 4074 | "output_type": "stream", |
4162 | 4075 | "text": [ |
4163 | - "false" | |
4076 | + "true" | |
4164 | 4077 | ] |
4165 | 4078 | } |
4166 | 4079 | ], |
@@ -4178,7 +4091,7 @@ | ||
4178 | 4091 | }, |
4179 | 4092 | { |
4180 | 4093 | "cell_type": "code", |
4181 | - "execution_count": 145, | |
4094 | + "execution_count": 151, | |
4182 | 4095 | "id": "b95fe984", |
4183 | 4096 | "metadata": {}, |
4184 | 4097 | "outputs": [ |
@@ -4207,7 +4120,7 @@ | ||
4207 | 4120 | }, |
4208 | 4121 | { |
4209 | 4122 | "cell_type": "code", |
4210 | - "execution_count": 146, | |
4123 | + "execution_count": 152, | |
4211 | 4124 | "id": "b5ddac15", |
4212 | 4125 | "metadata": {}, |
4213 | 4126 | "outputs": [ |
@@ -4235,7 +4148,7 @@ | ||
4235 | 4148 | }, |
4236 | 4149 | { |
4237 | 4150 | "cell_type": "code", |
4238 | - "execution_count": 147, | |
4151 | + "execution_count": 153, | |
4239 | 4152 | "id": "d4077376", |
4240 | 4153 | "metadata": {}, |
4241 | 4154 | "outputs": [ |
@@ -4255,7 +4168,7 @@ | ||
4255 | 4168 | }, |
4256 | 4169 | { |
4257 | 4170 | "cell_type": "code", |
4258 | - "execution_count": 148, | |
4171 | + "execution_count": 154, | |
4259 | 4172 | "id": "ac840996", |
4260 | 4173 | "metadata": {}, |
4261 | 4174 | "outputs": [ |
@@ -4263,7 +4176,7 @@ | ||
4263 | 4176 | "name": "stdout", |
4264 | 4177 | "output_type": "stream", |
4265 | 4178 | "text": [ |
4266 | - "false" | |
4179 | + "true" | |
4267 | 4180 | ] |
4268 | 4181 | } |
4269 | 4182 | ], |
@@ -4273,7 +4186,7 @@ | ||
4273 | 4186 | }, |
4274 | 4187 | { |
4275 | 4188 | "cell_type": "code", |
4276 | - "execution_count": 149, | |
4189 | + "execution_count": 155, | |
4277 | 4190 | "id": "e7c3b141", |
4278 | 4191 | "metadata": {}, |
4279 | 4192 | "outputs": [ |
@@ -4293,7 +4206,7 @@ | ||
4293 | 4206 | }, |
4294 | 4207 | { |
4295 | 4208 | "cell_type": "code", |
4296 | - "execution_count": 150, | |
4209 | + "execution_count": 156, | |
4297 | 4210 | "id": "95c7308d", |
4298 | 4211 | "metadata": {}, |
4299 | 4212 | "outputs": [ |
@@ -4301,7 +4214,7 @@ | ||
4301 | 4214 | "name": "stdout", |
4302 | 4215 | "output_type": "stream", |
4303 | 4216 | "text": [ |
4304 | - "true" | |
4217 | + "false" | |
4305 | 4218 | ] |
4306 | 4219 | } |
4307 | 4220 | ], |
@@ -4311,7 +4224,7 @@ | ||
4311 | 4224 | }, |
4312 | 4225 | { |
4313 | 4226 | "cell_type": "code", |
4314 | - "execution_count": 151, | |
4227 | + "execution_count": 157, | |
4315 | 4228 | "id": "5e43ba80", |
4316 | 4229 | "metadata": {}, |
4317 | 4230 | "outputs": [ |
@@ -4331,7 +4244,7 @@ | ||
4331 | 4244 | }, |
4332 | 4245 | { |
4333 | 4246 | "cell_type": "code", |
4334 | - "execution_count": 152, | |
4247 | + "execution_count": 158, | |
4335 | 4248 | "id": "20070426", |
4336 | 4249 | "metadata": {}, |
4337 | 4250 | "outputs": [ |
@@ -4339,7 +4252,7 @@ | ||
4339 | 4252 | "name": "stdout", |
4340 | 4253 | "output_type": "stream", |
4341 | 4254 | "text": [ |
4342 | - "false" | |
4255 | + "true" | |
4343 | 4256 | ] |
4344 | 4257 | } |
4345 | 4258 | ], |
@@ -4349,7 +4262,7 @@ | ||
4349 | 4262 | }, |
4350 | 4263 | { |
4351 | 4264 | "cell_type": "code", |
4352 | - "execution_count": 154, | |
4265 | + "execution_count": 159, | |
4353 | 4266 | "id": "c97b0df9", |
4354 | 4267 | "metadata": {}, |
4355 | 4268 | "outputs": [ |
@@ -4365,7 +4278,7 @@ | ||
4365 | 4278 | }, |
4366 | 4279 | { |
4367 | 4280 | "cell_type": "code", |
4368 | - "execution_count": 155, | |
4281 | + "execution_count": 160, | |
4369 | 4282 | "id": "980a1bbf", |
4370 | 4283 | "metadata": {}, |
4371 | 4284 | "outputs": [ |
@@ -4381,7 +4294,7 @@ | ||
4381 | 4294 | }, |
4382 | 4295 | { |
4383 | 4296 | "cell_type": "code", |
4384 | - "execution_count": 199, | |
4297 | + "execution_count": 161, | |
4385 | 4298 | "id": "4f429421", |
4386 | 4299 | "metadata": {}, |
4387 | 4300 | "outputs": [ |
@@ -4389,7 +4302,7 @@ | ||
4389 | 4302 | "name": "stdout", |
4390 | 4303 | "output_type": "stream", |
4391 | 4304 | "text": [ |
4392 | - "false" | |
4305 | + "true" | |
4393 | 4306 | ] |
4394 | 4307 | } |
4395 | 4308 | ], |
@@ -4399,7 +4312,7 @@ | ||
4399 | 4312 | }, |
4400 | 4313 | { |
4401 | 4314 | "cell_type": "code", |
4402 | - "execution_count": 158, | |
4315 | + "execution_count": 162, | |
4403 | 4316 | "id": "5a6419ee", |
4404 | 4317 | "metadata": {}, |
4405 | 4318 | "outputs": [ |
@@ -4407,7 +4320,7 @@ | ||
4407 | 4320 | "name": "stdout", |
4408 | 4321 | "output_type": "stream", |
4409 | 4322 | "text": [ |
4410 | - "true" | |
4323 | + "false" | |
4411 | 4324 | ] |
4412 | 4325 | } |
4413 | 4326 | ], |
@@ -4417,7 +4330,7 @@ | ||
4417 | 4330 | }, |
4418 | 4331 | { |
4419 | 4332 | "cell_type": "code", |
4420 | - "execution_count": 159, | |
4333 | + "execution_count": 163, | |
4421 | 4334 | "id": "cd586291", |
4422 | 4335 | "metadata": {}, |
4423 | 4336 | "outputs": [ |
@@ -4425,7 +4338,7 @@ | ||
4425 | 4338 | "name": "stdout", |
4426 | 4339 | "output_type": "stream", |
4427 | 4340 | "text": [ |
4428 | - "false" | |
4341 | + "true" | |
4429 | 4342 | ] |
4430 | 4343 | } |
4431 | 4344 | ], |
@@ -4443,7 +4356,7 @@ | ||
4443 | 4356 | }, |
4444 | 4357 | { |
4445 | 4358 | "cell_type": "code", |
4446 | - "execution_count": 160, | |
4359 | + "execution_count": 164, | |
4447 | 4360 | "id": "35fb22d2", |
4448 | 4361 | "metadata": {}, |
4449 | 4362 | "outputs": [ |
@@ -4451,7 +4364,7 @@ | ||
4451 | 4364 | "name": "stdout", |
4452 | 4365 | "output_type": "stream", |
4453 | 4366 | "text": [ |
4454 | - "[3 2 1] [4 5 6]" | |
4367 | + "[4 5 6] [3 2 1]" | |
4455 | 4368 | ] |
4456 | 4369 | } |
4457 | 4370 | ], |
@@ -4461,7 +4374,7 @@ | ||
4461 | 4374 | }, |
4462 | 4375 | { |
4463 | 4376 | "cell_type": "code", |
4464 | - "execution_count": 161, | |
4377 | + "execution_count": 165, | |
4465 | 4378 | "id": "36d74e5b", |
4466 | 4379 | "metadata": {}, |
4467 | 4380 | "outputs": [ |
@@ -4469,7 +4382,7 @@ | ||
4469 | 4382 | "name": "stdout", |
4470 | 4383 | "output_type": "stream", |
4471 | 4384 | "text": [ |
4472 | - "[3 2 1] [4 5 6]" | |
4385 | + "[4 5 6] [3 2 1]" | |
4473 | 4386 | ] |
4474 | 4387 | } |
4475 | 4388 | ], |
@@ -4495,7 +4408,7 @@ | ||
4495 | 4408 | }, |
4496 | 4409 | { |
4497 | 4410 | "cell_type": "code", |
4498 | - "execution_count": 202, | |
4411 | + "execution_count": 166, | |
4499 | 4412 | "id": "dd645337", |
4500 | 4413 | "metadata": {}, |
4501 | 4414 | "outputs": [ |
@@ -4512,7 +4425,7 @@ | ||
4512 | 4425 | }, |
4513 | 4426 | { |
4514 | 4427 | "cell_type": "code", |
4515 | - "execution_count": 203, | |
4428 | + "execution_count": 167, | |
4516 | 4429 | "id": "935552d4", |
4517 | 4430 | "metadata": {}, |
4518 | 4431 | "outputs": [ |
@@ -4530,7 +4443,7 @@ | ||
4530 | 4443 | }, |
4531 | 4444 | { |
4532 | 4445 | "cell_type": "code", |
4533 | - "execution_count": 204, | |
4446 | + "execution_count": 168, | |
4534 | 4447 | "id": "05100765", |
4535 | 4448 | "metadata": {}, |
4536 | 4449 | "outputs": [ |
@@ -4538,7 +4451,7 @@ | ||
4538 | 4451 | "name": "stdout", |
4539 | 4452 | "output_type": "stream", |
4540 | 4453 | "text": [ |
4541 | - "true [3 2 1] [4 5 6]" | |
4454 | + "false [4 5 6] [3 2 1]" | |
4542 | 4455 | ] |
4543 | 4456 | } |
4544 | 4457 | ], |
@@ -4548,8 +4461,8 @@ | ||
4548 | 4461 | }, |
4549 | 4462 | { |
4550 | 4463 | "cell_type": "code", |
4551 | - "execution_count": 134, | |
4552 | - "id": "187c0381", | |
4464 | + "execution_count": 169, | |
4465 | + "id": "7ac873d4", | |
4553 | 4466 | "metadata": {}, |
4554 | 4467 | "outputs": [ |
4555 | 4468 | { |
@@ -4564,7 +4477,7 @@ | ||
4564 | 4477 | }, |
4565 | 4478 | { |
4566 | 4479 | "cell_type": "markdown", |
4567 | - "id": "1a8a8196", | |
4480 | + "id": "7ef0f655", | |
4568 | 4481 | "metadata": {}, |
4569 | 4482 | "source": [ |
4570 | 4483 | "### Subtraction, at last...\n", |
@@ -4584,7 +4497,7 @@ | ||
4584 | 4497 | }, |
4585 | 4498 | { |
4586 | 4499 | "cell_type": "markdown", |
4587 | - "id": "9751fd65", | |
4500 | + "id": "173aa582", | |
4588 | 4501 | "metadata": {}, |
4589 | 4502 | "source": [ |
4590 | 4503 | "We want to use `check-gt` here:\n", |
@@ -4595,7 +4508,7 @@ | ||
4595 | 4508 | }, |
4596 | 4509 | { |
4597 | 4510 | "cell_type": "markdown", |
4598 | - "id": "df2ae839", | |
4511 | + "id": "242e863f", | |
4599 | 4512 | "metadata": {}, |
4600 | 4513 | "source": [ |
4601 | 4514 | "It seems we should just flip the sign bit if we swap, eh?\n", |
@@ -4605,7 +4518,7 @@ | ||
4605 | 4518 | }, |
4606 | 4519 | { |
4607 | 4520 | "cell_type": "markdown", |
4608 | - "id": "c775c3a4", | |
4521 | + "id": "37ed39c6", | |
4609 | 4522 | "metadata": {}, |
4610 | 4523 | "source": [ |
4611 | 4524 | "Now we subtract the digits:\n", |
@@ -4629,14 +4542,14 @@ | ||
4629 | 4542 | " [swap sub-carry]\n", |
4630 | 4543 | " [sub-with-carry]\n", |
4631 | 4544 | " build-two-list-combiner\n", |
4632 | - " [i cons] genrec\n", | |
4545 | + " genrec\n", | |
4633 | 4546 | "\n", |
4634 | 4547 | "We just need to define the pieces." |
4635 | 4548 | ] |
4636 | 4549 | }, |
4637 | 4550 | { |
4638 | 4551 | "cell_type": "markdown", |
4639 | - "id": "32eeaf38", | |
4552 | + "id": "844210e4", | |
4640 | 4553 | "metadata": {}, |
4641 | 4554 | "source": [ |
4642 | 4555 | "#### `sub-with-carry`\n", |
@@ -4646,14 +4559,14 @@ | ||
4646 | 4559 | }, |
4647 | 4560 | { |
4648 | 4561 | "cell_type": "markdown", |
4649 | - "id": "3b47df3b", | |
4562 | + "id": "3c10e256", | |
4650 | 4563 | "metadata": {}, |
4651 | 4564 | "source": [ |
4652 | 4565 | " carry a b sub-with-carry\n", |
4653 | 4566 | " ------------------------------\n", |
4654 | 4567 | " (a-b-carry) new-carry\n", |
4655 | 4568 | "\n", |
4656 | - " _sub-with-carry0 ≡ [bool_to_int] dipd - -\n", | |
4569 | + " _sub-with-carry0 ≡ [bool-to-int] dipd - -\n", | |
4657 | 4570 | " _sub-with-carry1 ≡ [base + base mod] [0 <] clop\n", |
4658 | 4571 | "\n", |
4659 | 4572 | " sub-with-carry ≡ _sub-with-carry0 _sub-with-carry1\n" |
@@ -4661,8 +4574,8 @@ | ||
4661 | 4574 | }, |
4662 | 4575 | { |
4663 | 4576 | "cell_type": "code", |
4664 | - "execution_count": 135, | |
4665 | - "id": "880dc3da", | |
4577 | + "execution_count": 170, | |
4578 | + "id": "c360cc7b", | |
4666 | 4579 | "metadata": {}, |
4667 | 4580 | "outputs": [ |
4668 | 4581 | { |
@@ -4672,15 +4585,15 @@ | ||
4672 | 4585 | } |
4673 | 4586 | ], |
4674 | 4587 | "source": [ |
4675 | - "[_sub-with-carry0 rolldown bool_to_int [-] ii] inscribe\n", | |
4588 | + "[_sub-with-carry0 rolldown bool-to-int [-] ii] inscribe\n", | |
4676 | 4589 | "[_sub-with-carry1 [base + base mod] [0 <] cleave] inscribe\n", |
4677 | 4590 | "[sub-with-carry _sub-with-carry0 _sub-with-carry1] inscribe" |
4678 | 4591 | ] |
4679 | 4592 | }, |
4680 | 4593 | { |
4681 | 4594 | "cell_type": "code", |
4682 | - "execution_count": 139, | |
4683 | - "id": "bae53ad4", | |
4595 | + "execution_count": 171, | |
4596 | + "id": "3a84adff", | |
4684 | 4597 | "metadata": { |
4685 | 4598 | "scrolled": true |
4686 | 4599 | }, |
@@ -4699,8 +4612,8 @@ | ||
4699 | 4612 | }, |
4700 | 4613 | { |
4701 | 4614 | "cell_type": "code", |
4702 | - "execution_count": 140, | |
4703 | - "id": "f54d93bc", | |
4615 | + "execution_count": 172, | |
4616 | + "id": "0dcdc968", | |
4704 | 4617 | "metadata": {}, |
4705 | 4618 | "outputs": [ |
4706 | 4619 | { |
@@ -4717,8 +4630,8 @@ | ||
4717 | 4630 | }, |
4718 | 4631 | { |
4719 | 4632 | "cell_type": "code", |
4720 | - "execution_count": 141, | |
4721 | - "id": "740034d8", | |
4633 | + "execution_count": 173, | |
4634 | + "id": "2d60492d", | |
4722 | 4635 | "metadata": {}, |
4723 | 4636 | "outputs": [ |
4724 | 4637 | { |
@@ -4746,7 +4659,7 @@ | ||
4746 | 4659 | }, |
4747 | 4660 | { |
4748 | 4661 | "cell_type": "markdown", |
4749 | - "id": "d29e6193", | |
4662 | + "id": "fc4ff7c6", | |
4750 | 4663 | "metadata": {}, |
4751 | 4664 | "source": [ |
4752 | 4665 | "That leaves the recursive branch:\n", |
@@ -4768,7 +4681,7 @@ | ||
4768 | 4681 | }, |
4769 | 4682 | { |
4770 | 4683 | "cell_type": "markdown", |
4771 | - "id": "d31868ab", | |
4684 | + "id": "984f1bf4", | |
4772 | 4685 | "metadata": {}, |
4773 | 4686 | "source": [ |
4774 | 4687 | " \n", |
@@ -4783,7 +4696,7 @@ | ||
4783 | 4696 | }, |
4784 | 4697 | { |
4785 | 4698 | "cell_type": "markdown", |
4786 | - "id": "5c4404a8", | |
4699 | + "id": "845abba7", | |
4787 | 4700 | "metadata": {}, |
4788 | 4701 | "source": [ |
4789 | 4702 | "But there's a problem! This winds up subtracting `a` from 0 rather than the other way around:\n", |
@@ -4793,16 +4706,14 @@ | ||
4793 | 4706 | }, |
4794 | 4707 | { |
4795 | 4708 | "cell_type": "code", |
4796 | - "execution_count": 147, | |
4797 | - "id": "be093900", | |
4709 | + "execution_count": 174, | |
4710 | + "id": "20c8ad40", | |
4798 | 4711 | "metadata": {}, |
4799 | 4712 | "outputs": [ |
4800 | 4713 | { |
4801 | 4714 | "name": "stdout", |
4802 | 4715 | "output_type": "stream", |
4803 | - "text": [ | |
4804 | - "[3 2 1]" | |
4805 | - ] | |
4716 | + "text": [] | |
4806 | 4717 | } |
4807 | 4718 | ], |
4808 | 4719 | "source": [ |
@@ -4818,7 +4729,7 @@ | ||
4818 | 4729 | }, |
4819 | 4730 | { |
4820 | 4731 | "cell_type": "markdown", |
4821 | - "id": "253538a4", | |
4732 | + "id": "77e427f9", | |
4822 | 4733 | "metadata": {}, |
4823 | 4734 | "source": [ |
4824 | 4735 | "Try it out:" |
@@ -4826,8 +4737,8 @@ | ||
4826 | 4737 | }, |
4827 | 4738 | { |
4828 | 4739 | "cell_type": "code", |
4829 | - "execution_count": 148, | |
4830 | - "id": "ce9f01e2", | |
4740 | + "execution_count": 175, | |
4741 | + "id": "92201303", | |
4831 | 4742 | "metadata": {}, |
4832 | 4743 | "outputs": [ |
4833 | 4744 | { |
@@ -4846,8 +4757,8 @@ | ||
4846 | 4757 | }, |
4847 | 4758 | { |
4848 | 4759 | "cell_type": "code", |
4849 | - "execution_count": 160, | |
4850 | - "id": "2120af39", | |
4760 | + "execution_count": 176, | |
4761 | + "id": "1a1d7cdc", | |
4851 | 4762 | "metadata": {}, |
4852 | 4763 | "outputs": [ |
4853 | 4764 | { |
@@ -4866,8 +4777,8 @@ | ||
4866 | 4777 | }, |
4867 | 4778 | { |
4868 | 4779 | "cell_type": "code", |
4869 | - "execution_count": 161, | |
4870 | - "id": "55fc1f59", | |
4780 | + "execution_count": 177, | |
4781 | + "id": "39ce9c6a", | |
4871 | 4782 | "metadata": {}, |
4872 | 4783 | "outputs": [ |
4873 | 4784 | { |
@@ -4886,8 +4797,8 @@ | ||
4886 | 4797 | }, |
4887 | 4798 | { |
4888 | 4799 | "cell_type": "code", |
4889 | - "execution_count": 162, | |
4890 | - "id": "1db3eaeb", | |
4800 | + "execution_count": 178, | |
4801 | + "id": "a93e916e", | |
4891 | 4802 | "metadata": {}, |
4892 | 4803 | "outputs": [ |
4893 | 4804 | { |
@@ -4906,8 +4817,8 @@ | ||
4906 | 4817 | }, |
4907 | 4818 | { |
4908 | 4819 | "cell_type": "code", |
4909 | - "execution_count": 163, | |
4910 | - "id": "ededec7b", | |
4820 | + "execution_count": 179, | |
4821 | + "id": "c2273ff3", | |
4911 | 4822 | "metadata": {}, |
4912 | 4823 | "outputs": [ |
4913 | 4824 | { |
@@ -4922,7 +4833,7 @@ | ||
4922 | 4833 | }, |
4923 | 4834 | { |
4924 | 4835 | "cell_type": "markdown", |
4925 | - "id": "ffc08bef", | |
4836 | + "id": "7c609313", | |
4926 | 4837 | "metadata": {}, |
4927 | 4838 | "source": [ |
4928 | 4839 | "But what about those leading zeroes?\n", |
@@ -4934,8 +4845,8 @@ | ||
4934 | 4845 | }, |
4935 | 4846 | { |
4936 | 4847 | "cell_type": "code", |
4937 | - "execution_count": 165, | |
4938 | - "id": "fe557598", | |
4848 | + "execution_count": 180, | |
4849 | + "id": "d8c7f7a5", | |
4939 | 4850 | "metadata": {}, |
4940 | 4851 | "outputs": [ |
4941 | 4852 | { |
@@ -4950,56 +4861,8 @@ | ||
4950 | 4861 | }, |
4951 | 4862 | { |
4952 | 4863 | "cell_type": "code", |
4953 | - "execution_count": null, | |
4954 | - "id": "f7275cd6", | |
4955 | - "metadata": {}, | |
4956 | - "outputs": [], | |
4957 | - "source": [] | |
4958 | - }, | |
4959 | - { | |
4960 | - "cell_type": "code", | |
4961 | - "execution_count": null, | |
4962 | - "id": "740a5c97", | |
4963 | - "metadata": {}, | |
4964 | - "outputs": [], | |
4965 | - "source": [] | |
4966 | - }, | |
4967 | - { | |
4968 | - "cell_type": "code", | |
4969 | - "execution_count": null, | |
4970 | - "id": "9ea8ba1c", | |
4971 | - "metadata": {}, | |
4972 | - "outputs": [], | |
4973 | - "source": [] | |
4974 | - }, | |
4975 | - { | |
4976 | - "cell_type": "code", | |
4977 | - "execution_count": 164, | |
4978 | - "id": "b6c2e9ee", | |
4979 | - "metadata": {}, | |
4980 | - "outputs": [ | |
4981 | - { | |
4982 | - "name": "stdout", | |
4983 | - "output_type": "stream", | |
4984 | - "text": [] | |
4985 | - } | |
4986 | - ], | |
4987 | - "source": [ | |
4988 | - "[sub-carry-from-digits popd] inscribe" | |
4989 | - ] | |
4990 | - }, | |
4991 | - { | |
4992 | - "cell_type": "markdown", | |
4993 | - "id": "32cef119", | |
4994 | - "metadata": {}, | |
4995 | - "source": [ | |
4996 | - " sub-carry == pop" | |
4997 | - ] | |
4998 | - }, | |
4999 | - { | |
5000 | - "cell_type": "code", | |
5001 | - "execution_count": 230, | |
5002 | - "id": "c22775e9", | |
4864 | + "execution_count": 181, | |
4865 | + "id": "875aaafa", | |
5003 | 4866 | "metadata": {}, |
5004 | 4867 | "outputs": [ |
5005 | 4868 | { |
@@ -5009,350 +4872,81 @@ | ||
5009 | 4872 | } |
5010 | 4873 | ], |
5011 | 4874 | "source": [ |
5012 | - "[sub-like-bigints [uncons] dip rest check-gt sub-digits cons] inscribe\n", | |
5013 | - "[sub-digits initial-carry sub-digits'] inscribe\n", | |
5014 | - "[sub-digits'\n", | |
5015 | - " [sub-carry-from-digits]\n", | |
5016 | - " [swap sub-carry]\n", | |
5017 | - " [sub-with-carry]\n", | |
5018 | - " build-two-list-combiner\n", | |
5019 | - " \n", | |
4875 | + "[sub-carry-from-digits\n", | |
4876 | + " [pop not]\n", | |
4877 | + " [popd]\n", | |
4878 | + " [_scfd_R0]\n", | |
4879 | + " [i cons-but-not-leading-zeroes]\n", | |
4880 | + " genrec\n", | |
5020 | 4881 | "] inscribe" |
5021 | 4882 | ] |
5022 | 4883 | }, |
5023 | 4884 | { |
5024 | 4885 | "cell_type": "code", |
5025 | - "execution_count": 231, | |
5026 | - "id": "ac670030", | |
4886 | + "execution_count": 182, | |
4887 | + "id": "bd2447b6", | |
5027 | 4888 | "metadata": {}, |
5028 | 4889 | "outputs": [ |
5029 | 4890 | { |
5030 | 4891 | "name": "stdout", |
5031 | 4892 | "output_type": "stream", |
5032 | - "text": [ | |
5033 | - "false [3 2 1] [6 5 4] [P] [[P'] [ditch-empty-list sub-carry-from-digits] [pop swap sub-carry] ifte] [uncons-two [sub-with-carry] dipd]" | |
5034 | - ] | |
4893 | + "text": [] | |
5035 | 4894 | } |
5036 | 4895 | ], |
5037 | 4896 | "source": [ |
5038 | - "clear\n", | |
5039 | - "false\n", | |
5040 | - "[3 2 1] [6 5 4]\n", | |
5041 | - "[sub-carry-from-digits]\n", | |
5042 | - " [swap sub-carry]\n", | |
5043 | - " [sub-with-carry]\n", | |
5044 | - " build-two-list-combiner" | |
5045 | - ] | |
5046 | - }, | |
5047 | - { | |
5048 | - "cell_type": "code", | |
5049 | - "execution_count": null, | |
5050 | - "id": "8fbba815", | |
5051 | - "metadata": {}, | |
5052 | - "outputs": [], | |
5053 | - "source": [ | |
5054 | - "[i cons] genrec\n" | |
4897 | + "[_scfd_R0 uncons 0 swap [sub-with-carry] dip] inscribe" | |
5055 | 4898 | ] |
5056 | 4899 | }, |
5057 | 4900 | { |
5058 | 4901 | "cell_type": "code", |
5059 | - "execution_count": null, | |
5060 | - "id": "cce0cc68", | |
5061 | - "metadata": {}, | |
5062 | - "outputs": [], | |
5063 | - "source": [] | |
5064 | - }, | |
5065 | - { | |
5066 | - "cell_type": "code", | |
5067 | - "execution_count": null, | |
5068 | - "id": "9163ad94", | |
5069 | - "metadata": {}, | |
5070 | - "outputs": [], | |
5071 | - "source": [] | |
5072 | - }, | |
5073 | - { | |
5074 | - "cell_type": "code", | |
5075 | - "execution_count": null, | |
5076 | - "id": "d862f5a8", | |
5077 | - "metadata": {}, | |
5078 | - "outputs": [], | |
5079 | - "source": [] | |
5080 | - }, | |
5081 | - { | |
5082 | - "cell_type": "code", | |
5083 | - "execution_count": null, | |
5084 | - "id": "976c4d53", | |
5085 | - "metadata": {}, | |
5086 | - "outputs": [], | |
5087 | - "source": [] | |
5088 | - }, | |
5089 | - { | |
5090 | - "cell_type": "code", | |
5091 | - "execution_count": 212, | |
5092 | - "id": "3b05693f", | |
4902 | + "execution_count": 183, | |
4903 | + "id": "ffaf1fcc", | |
5093 | 4904 | "metadata": {}, |
5094 | 4905 | "outputs": [ |
5095 | 4906 | { |
5096 | 4907 | "name": "stdout", |
5097 | 4908 | "output_type": "stream", |
5098 | 4909 | "text": [ |
5099 | - "[true 12345] [true 109]" | |
4910 | + "[9 9]" | |
5100 | 4911 | ] |
5101 | 4912 | } |
5102 | 4913 | ], |
5103 | 4914 | "source": [ |
5104 | 4915 | "clear\n", |
5105 | - "12345 to_bigint 109 to_bigint" | |
4916 | + "\n", | |
4917 | + "true [0 0 1] sub-carry-from-digits" | |
5106 | 4918 | ] |
5107 | 4919 | }, |
5108 | 4920 | { |
5109 | 4921 | "cell_type": "code", |
5110 | - "execution_count": 213, | |
5111 | - "id": "fc69485b", | |
4922 | + "execution_count": 184, | |
4923 | + "id": "8a2b2165", | |
5112 | 4924 | "metadata": {}, |
5113 | 4925 | "outputs": [ |
5114 | 4926 | { |
5115 | 4927 | "name": "stdout", |
5116 | 4928 | "output_type": "stream", |
5117 | - "text": [ | |
5118 | - "false false [109] [12345] [P] [[[P'] [ditch-empty-list sub-carry-from-digits] [pop swap sub-carry] ifte] uncons-two [sub-with-carry] dipd]" | |
5119 | - ] | |
4929 | + "text": [] | |
5120 | 4930 | } |
5121 | 4931 | ], |
5122 | 4932 | "source": [ |
5123 | - "sub-like-bigints" | |
5124 | - ] | |
5125 | - }, | |
5126 | - { | |
5127 | - "cell_type": "markdown", | |
5128 | - "id": "ca954866", | |
5129 | - "metadata": {}, | |
5130 | - "source": [ | |
5131 | - " false false [109] [12345]\n", | |
5132 | - " [P]\n", | |
5133 | - " [\n", | |
5134 | - " [P']\n", | |
5135 | - " [ditch-empty-list sub-carry-from-digits]\n", | |
5136 | - " [pop swap sub-carry]\n", | |
5137 | - " ifte\n", | |
5138 | - " ]\n", | |
5139 | - " [\n", | |
5140 | - " [uncons-two [sub-with-carry] dipd]\n", | |
5141 | - " i cons\n", | |
5142 | - " ]" | |
5143 | - ] | |
5144 | - }, | |
5145 | - { | |
5146 | - "cell_type": "code", | |
5147 | - "execution_count": null, | |
5148 | - "id": "45a744b7", | |
5149 | - "metadata": {}, | |
5150 | - "outputs": [], | |
5151 | - "source": [ | |
5152 | - "[i cons] genrec" | |
4933 | + "clear" | |
5153 | 4934 | ] |
5154 | 4935 | }, |
5155 | 4936 | { |
5156 | 4937 | "cell_type": "markdown", |
5157 | - "id": "bc354239", | |
5158 | - "metadata": {}, | |
5159 | - "source": [ | |
5160 | - "- Did I redefine something?\n", | |
5161 | - "- Did a definition not make it into the dictionary?\n", | |
5162 | - "- Trace in the Notebooks should show a trace even if an exception is encountered.\n" | |
5163 | - ] | |
5164 | - }, | |
5165 | - { | |
5166 | - "cell_type": "code", | |
5167 | - "execution_count": 215, | |
5168 | - "id": "9b2fd2fb", | |
5169 | - "metadata": {}, | |
5170 | - "outputs": [ | |
5171 | - { | |
5172 | - "name": "stdout", | |
5173 | - "output_type": "stream", | |
5174 | - "text": [ | |
5175 | - "\n", | |
5176 | - "==== Help on P ====\n", | |
5177 | - "\n", | |
5178 | - "P ≡ [bool] ii & not\n", | |
5179 | - "\n", | |
5180 | - "---- end ( P )\n", | |
5181 | - "\n", | |
5182 | - "\n", | |
5183 | - "false false [109] [12345] [P] [[[P'] [ditch-empty-list sub-carry-from-digits] [pop swap sub-carry] ifte] uncons-two [sub-with-carry] dipd]" | |
5184 | - ] | |
5185 | - } | |
5186 | - ], | |
5187 | - "source": [ | |
5188 | - "[P] help" | |
5189 | - ] | |
5190 | - }, | |
5191 | - { | |
5192 | - "cell_type": "code", | |
5193 | - "execution_count": 216, | |
5194 | - "id": "3a69a1a2", | |
4938 | + "id": "73180c15", | |
5195 | 4939 | "metadata": {}, |
5196 | - "outputs": [ | |
5197 | - { | |
5198 | - "name": "stdout", | |
5199 | - "output_type": "stream", | |
5200 | - "text": [ | |
5201 | - "\n", | |
5202 | - "==== Help on P' ====\n", | |
5203 | - "\n", | |
5204 | - "P' ≡ [bool] ii |\n", | |
5205 | - "\n", | |
5206 | - "---- end ( P' )\n", | |
5207 | - "\n", | |
5208 | - "\n", | |
5209 | - "false false [109] [12345] [P] [[[P'] [ditch-empty-list sub-carry-from-digits] [pop swap sub-carry] ifte] uncons-two [sub-with-carry] dipd]" | |
5210 | - ] | |
5211 | - } | |
5212 | - ], | |
5213 | 4940 | "source": [ |
5214 | - "[P'] help" | |
5215 | - ] | |
5216 | - }, | |
5217 | - { | |
5218 | - "cell_type": "code", | |
5219 | - "execution_count": 224, | |
5220 | - "id": "e29a136f", | |
5221 | - "metadata": {}, | |
5222 | - "outputs": [ | |
5223 | - { | |
5224 | - "name": "stdout", | |
5225 | - "output_type": "stream", | |
5226 | - "text": [ | |
5227 | - "false false [109] [12345]" | |
5228 | - ] | |
5229 | - } | |
5230 | - ], | |
5231 | - "source": [ | |
5232 | - "pop" | |
5233 | - ] | |
5234 | - }, | |
5235 | - { | |
5236 | - "cell_type": "code", | |
5237 | - "execution_count": 220, | |
5238 | - "id": "7499c430", | |
5239 | - "metadata": {}, | |
5240 | - "outputs": [ | |
5241 | - { | |
5242 | - "name": "stdout", | |
5243 | - "output_type": "stream", | |
5244 | - "text": [ | |
5245 | - "false false [109] [12345]" | |
5246 | - ] | |
5247 | - } | |
5248 | - ], | |
5249 | - "source": [ | |
5250 | - " [109] [12345] " | |
5251 | - ] | |
5252 | - }, | |
5253 | - { | |
5254 | - "cell_type": "code", | |
5255 | - "execution_count": 225, | |
5256 | - "id": "1f38a3a1", | |
5257 | - "metadata": {}, | |
5258 | - "outputs": [ | |
5259 | - { | |
5260 | - "name": "stdout", | |
5261 | - "output_type": "stream", | |
5262 | - "text": [ | |
5263 | - "false false [109] [12345] true" | |
5264 | - ] | |
5265 | - } | |
5266 | - ], | |
5267 | - "source": [ | |
5268 | - "[P'] nullary\n", | |
5269 | - " " | |
5270 | - ] | |
5271 | - }, | |
5272 | - { | |
5273 | - "cell_type": "code", | |
5274 | - "execution_count": 221, | |
5275 | - "id": "31103274", | |
5276 | - "metadata": {}, | |
5277 | - "outputs": [ | |
5278 | - { | |
5279 | - "name": "stdout", | |
5280 | - "output_type": "stream", | |
5281 | - "text": [ | |
5282 | - "false false [109] [12345] [[P'] [ditch-empty-list sub-carry-from-digits] [pop swap sub-carry] ifte]" | |
5283 | - ] | |
5284 | - } | |
5285 | - ], | |
5286 | - "source": [ | |
5287 | - " [[P'] [ditch-empty-list sub-carry-from-digits] [pop swap sub-carry] ifte]\n", | |
5288 | - " " | |
5289 | - ] | |
5290 | - }, | |
5291 | - { | |
5292 | - "cell_type": "code", | |
5293 | - "execution_count": 221, | |
5294 | - "id": "9f3e739d", | |
5295 | - "metadata": {}, | |
5296 | - "outputs": [ | |
5297 | - { | |
5298 | - "name": "stdout", | |
5299 | - "output_type": "stream", | |
5300 | - "text": [ | |
5301 | - "false false [109] [12345] [[P'] [ditch-empty-list sub-carry-from-digits] [pop swap sub-carry] ifte]" | |
5302 | - ] | |
5303 | - } | |
5304 | - ], | |
5305 | - "source": [ | |
5306 | - " [[P'] [ditch-empty-list sub-carry-from-digits] [pop swap sub-carry] ifte]\n", | |
5307 | - " " | |
5308 | - ] | |
5309 | - }, | |
5310 | - { | |
5311 | - "cell_type": "code", | |
5312 | - "execution_count": null, | |
5313 | - "id": "11639f03", | |
5314 | - "metadata": {}, | |
5315 | - "outputs": [], | |
5316 | - "source": [ | |
5317 | - " uncons-two [sub-with-carry] dipd" | |
4941 | + "#### `sub-carry`\n", | |
4942 | + "\n", | |
4943 | + " sub-carry == pop" | |
5318 | 4944 | ] |
5319 | 4945 | }, |
5320 | 4946 | { |
5321 | 4947 | "cell_type": "code", |
5322 | - "execution_count": null, | |
5323 | - "id": "2889ee5e", | |
5324 | - "metadata": {}, | |
5325 | - "outputs": [], | |
5326 | - "source": [] | |
5327 | - }, | |
5328 | - { | |
5329 | - "cell_type": "code", | |
5330 | - "execution_count": null, | |
5331 | - "id": "328334db", | |
5332 | - "metadata": {}, | |
5333 | - "outputs": [], | |
5334 | - "source": [] | |
5335 | - }, | |
5336 | - { | |
5337 | - "cell_type": "code", | |
5338 | - "execution_count": null, | |
5339 | - "id": "76e3a1ca", | |
5340 | - "metadata": {}, | |
5341 | - "outputs": [], | |
5342 | - "source": [] | |
5343 | - }, | |
5344 | - { | |
5345 | - "cell_type": "code", | |
5346 | - "execution_count": null, | |
5347 | - "id": "93d70133", | |
5348 | - "metadata": {}, | |
5349 | - "outputs": [], | |
5350 | - "source": [] | |
5351 | - }, | |
5352 | - { | |
5353 | - "cell_type": "code", | |
5354 | - "execution_count": 240, | |
5355 | - "id": "f2bc1f16", | |
4948 | + "execution_count": 185, | |
4949 | + "id": "c22775e9", | |
5356 | 4950 | "metadata": {}, |
5357 | 4951 | "outputs": [ |
5358 | 4952 | { |
@@ -5362,243 +4956,128 @@ | ||
5362 | 4956 | } |
5363 | 4957 | ], |
5364 | 4958 | "source": [ |
5365 | - "clear" | |
5366 | - ] | |
5367 | - }, | |
5368 | - { | |
5369 | - "cell_type": "code", | |
5370 | - "execution_count": 241, | |
5371 | - "id": "c404eb99", | |
5372 | - "metadata": {}, | |
5373 | - "outputs": [ | |
5374 | - { | |
5375 | - "name": "stdout", | |
5376 | - "output_type": "stream", | |
5377 | - "text": [ | |
5378 | - "false [3 2 1] [6 5 4] [P] [[P'] [ditch-empty-list sub-carry-from-digits] [pop swap pop] ifte] [uncons-two [sub-with-carry] dipd]" | |
5379 | - ] | |
5380 | - } | |
5381 | - ], | |
5382 | - "source": [ | |
5383 | - "clear\n", | |
5384 | - "false\n", | |
5385 | - "[3 2 1] [6 5 4]\n", | |
5386 | - "[sub-carry-from-digits]\n", | |
4959 | + "[sub-like-bigints [uncons] dip rest check-gt sub-digits cons] inscribe\n", | |
4960 | + "[sub-digits initial-carry sub-digits'] inscribe\n", | |
4961 | + "[sub-digits'\n", | |
4962 | + " [sub-carry-from-digits]\n", | |
5387 | 4963 | " [swap pop]\n", |
5388 | 4964 | " [sub-with-carry]\n", |
5389 | - " build-two-list-combiner" | |
5390 | - ] | |
5391 | - }, | |
5392 | - { | |
5393 | - "cell_type": "code", | |
5394 | - "execution_count": 242, | |
5395 | - "id": "74502c4c", | |
5396 | - "metadata": {}, | |
5397 | - "outputs": [ | |
5398 | - { | |
5399 | - "name": "stdout", | |
5400 | - "output_type": "stream", | |
5401 | - "text": [ | |
5402 | - "[2147483645 2147483644 2147483644]" | |
5403 | - ] | |
5404 | - } | |
5405 | - ], | |
5406 | - "source": [ | |
5407 | - "[i cons] genrec\n" | |
4965 | + " build-two-list-combiner\n", | |
4966 | + " genrec\n", | |
4967 | + "] inscribe" | |
5408 | 4968 | ] |
5409 | 4969 | }, |
5410 | 4970 | { |
5411 | 4971 | "cell_type": "code", |
5412 | - "execution_count": null, | |
5413 | - "id": "39a842e5", | |
5414 | - "metadata": {}, | |
5415 | - "outputs": [], | |
5416 | - "source": [] | |
5417 | - }, | |
5418 | - { | |
5419 | - "cell_type": "code", | |
5420 | - "execution_count": 243, | |
5421 | - "id": "ecb3de02", | |
4972 | + "execution_count": 186, | |
4973 | + "id": "ac670030", | |
5422 | 4974 | "metadata": {}, |
5423 | 4975 | "outputs": [ |
5424 | 4976 | { |
5425 | 4977 | "name": "stdout", |
5426 | 4978 | "output_type": "stream", |
5427 | 4979 | "text": [ |
5428 | - "false [6 5 4] [3 2 1] [P] [[P'] [ditch-empty-list sub-carry-from-digits] [pop swap pop] ifte] [uncons-two [sub-with-carry] dipd]" | |
4980 | + "true [3 2 1] [6 5 4]" | |
5429 | 4981 | ] |
5430 | 4982 | } |
5431 | 4983 | ], |
5432 | 4984 | "source": [ |
5433 | 4985 | "clear\n", |
5434 | - "false\n", | |
5435 | - "[3 2 1] [6 5 4] swap\n", | |
5436 | - "[sub-carry-from-digits]\n", | |
5437 | - " [swap pop]\n", | |
5438 | - " [sub-with-carry]\n", | |
5439 | - " build-two-list-combiner" | |
4986 | + "true [3 2 1] [6 5 4]" | |
5440 | 4987 | ] |
5441 | 4988 | }, |
5442 | 4989 | { |
5443 | 4990 | "cell_type": "code", |
5444 | - "execution_count": 244, | |
5445 | - "id": "0bf21e08", | |
4991 | + "execution_count": 187, | |
4992 | + "id": "c19ff340", | |
5446 | 4993 | "metadata": {}, |
5447 | 4994 | "outputs": [ |
5448 | 4995 | { |
5449 | 4996 | "name": "stdout", |
5450 | 4997 | "output_type": "stream", |
5451 | 4998 | "text": [ |
5452 | - "[3 3 3]" | |
4999 | + "false false [6 5 4] [3 2 1]" | |
5453 | 5000 | ] |
5454 | 5001 | } |
5455 | 5002 | ], |
5456 | 5003 | "source": [ |
5457 | - "[i cons] genrec\n" | |
5458 | - ] | |
5459 | - }, | |
5460 | - { | |
5461 | - "cell_type": "markdown", | |
5462 | - "id": "74054f2f", | |
5463 | - "metadata": {}, | |
5464 | - "source": [ | |
5465 | - "That sure fucking *looks* like it works." | |
5004 | + "check-gt initial-carry" | |
5466 | 5005 | ] |
5467 | 5006 | }, |
5468 | 5007 | { |
5469 | 5008 | "cell_type": "code", |
5470 | - "execution_count": null, | |
5471 | - "id": "20462cd5", | |
5472 | - "metadata": {}, | |
5473 | - "outputs": [], | |
5474 | - "source": [] | |
5475 | - }, | |
5476 | - { | |
5477 | - "cell_type": "code", | |
5478 | - "execution_count": 247, | |
5479 | - "id": "2ab1031c", | |
5009 | + "execution_count": 188, | |
5010 | + "id": "8fbba815", | |
5480 | 5011 | "metadata": {}, |
5481 | 5012 | "outputs": [ |
5482 | 5013 | { |
5483 | 5014 | "name": "stdout", |
5484 | 5015 | "output_type": "stream", |
5485 | 5016 | "text": [ |
5486 | - "true [6 5 4] [3 2 1]" | |
5017 | + "false [3 3 3]" | |
5487 | 5018 | ] |
5488 | 5019 | } |
5489 | 5020 | ], |
5490 | 5021 | "source": [ |
5491 | - "clear\n", | |
5492 | - "false\n", | |
5493 | - "[3 2 1] [6 5 4] check-gt" | |
5022 | + "sub-digits'" | |
5494 | 5023 | ] |
5495 | 5024 | }, |
5496 | 5025 | { |
5497 | 5026 | "cell_type": "code", |
5498 | - "execution_count": 248, | |
5499 | - "id": "1b908ee7", | |
5027 | + "execution_count": 189, | |
5028 | + "id": "3b05693f", | |
5500 | 5029 | "metadata": {}, |
5501 | 5030 | "outputs": [ |
5502 | 5031 | { |
5503 | 5032 | "name": "stdout", |
5504 | 5033 | "output_type": "stream", |
5505 | 5034 | "text": [ |
5506 | - "true [6 5 4] [3 2 1] [P] [[P'] [ditch-empty-list sub-carry-from-digits] [pop swap pop] ifte] [uncons-two [sub-with-carry] dipd]" | |
5035 | + "[true 5 4 3 2 1] [true 9 0 1]" | |
5507 | 5036 | ] |
5508 | 5037 | } |
5509 | 5038 | ], |
5510 | 5039 | "source": [ |
5511 | - "[sub-carry-from-digits]\n", | |
5512 | - " [swap pop]\n", | |
5513 | - " [sub-with-carry]\n", | |
5514 | - " build-two-list-combiner" | |
5040 | + "clear\n", | |
5041 | + "12345 to-bigint 109 to-bigint" | |
5515 | 5042 | ] |
5516 | 5043 | }, |
5517 | 5044 | { |
5518 | 5045 | "cell_type": "code", |
5519 | - "execution_count": 249, | |
5520 | - "id": "e223937e", | |
5046 | + "execution_count": 190, | |
5047 | + "id": "fc69485b", | |
5521 | 5048 | "metadata": {}, |
5522 | 5049 | "outputs": [ |
5523 | 5050 | { |
5524 | 5051 | "name": "stdout", |
5525 | 5052 | "output_type": "stream", |
5526 | 5053 | "text": [ |
5527 | - "[2 3 3]" | |
5054 | + "[true 6 3 2 2 1]" | |
5528 | 5055 | ] |
5529 | 5056 | } |
5530 | 5057 | ], |
5531 | 5058 | "source": [ |
5532 | - "[i cons] genrec\n" | |
5059 | + "sub-like-bigints" | |
5533 | 5060 | ] |
5534 | 5061 | }, |
5535 | 5062 | { |
5536 | 5063 | "cell_type": "code", |
5537 | - "execution_count": 251, | |
5538 | - "id": "a5747b29", | |
5064 | + "execution_count": 191, | |
5065 | + "id": "c992d25a", | |
5539 | 5066 | "metadata": {}, |
5540 | 5067 | "outputs": [ |
5541 | 5068 | { |
5542 | 5069 | "name": "stdout", |
5543 | 5070 | "output_type": "stream", |
5544 | 5071 | "text": [ |
5545 | - "-333" | |
5072 | + "12236" | |
5546 | 5073 | ] |
5547 | 5074 | } |
5548 | 5075 | ], |
5549 | 5076 | "source": [ |
5550 | - "clear 123 456 -" | |
5551 | - ] | |
5552 | - }, | |
5553 | - { | |
5554 | - "cell_type": "markdown", | |
5555 | - "id": "64c14e67", | |
5556 | - "metadata": {}, | |
5557 | - "source": [ | |
5558 | - "Almost." | |
5077 | + "from-bigint" | |
5559 | 5078 | ] |
5560 | 5079 | }, |
5561 | 5080 | { |
5562 | - "cell_type": "code", | |
5563 | - "execution_count": null, | |
5564 | - "id": "c9999912", | |
5565 | - "metadata": {}, | |
5566 | - "outputs": [], | |
5567 | - "source": [] | |
5568 | - }, | |
5569 | - { | |
5570 | - "cell_type": "code", | |
5571 | - "execution_count": null, | |
5572 | - "id": "29a0586c", | |
5573 | - "metadata": {}, | |
5574 | - "outputs": [], | |
5575 | - "source": [] | |
5576 | - }, | |
5577 | - { | |
5578 | - "cell_type": "code", | |
5579 | - "execution_count": null, | |
5580 | - "id": "bb8cb15e", | |
5581 | - "metadata": {}, | |
5582 | - "outputs": [], | |
5583 | - "source": [] | |
5584 | - }, | |
5585 | - { | |
5586 | - "cell_type": "code", | |
5587 | - "execution_count": null, | |
5588 | - "id": "6a5b3ace", | |
5589 | - "metadata": {}, | |
5590 | - "outputs": [], | |
5591 | - "source": [] | |
5592 | - }, | |
5593 | - { | |
5594 | - "cell_type": "code", | |
5595 | - "execution_count": null, | |
5596 | - "id": "417e2d45", | |
5597 | - "metadata": {}, | |
5598 | - "outputs": [], | |
5599 | - "source": [] | |
5600 | - }, | |
5601 | - { | |
5602 | 5081 | "cell_type": "markdown", |
5603 | 5082 | "id": "f2b707c1", |
5604 | 5083 | "metadata": {}, |
@@ -5607,11 +5086,11 @@ | ||
5607 | 5086 | "\n", |
5608 | 5087 | " base 2147483648\n", |
5609 | 5088 | " ditch-empty-list [bool] [popd] [pop] ifte\n", |
5610 | - " bool_to_int [0] [1] branch\n", | |
5089 | + " bool-to-int [0] [1] branch\n", | |
5611 | 5090 | " uncons-two [uncons] ii swapd\n", |
5612 | 5091 | "\n", |
5613 | 5092 | " add-with-carry _a0 _a1\n", |
5614 | - " _a0 [bool_to_int] dipd + +\n", | |
5093 | + " _a0 [bool-to-int] dipd + +\n", | |
5615 | 5094 | " _a1 base [mod] [>=] clop\n", |
5616 | 5095 | "\n", |
5617 | 5096 | " add-carry-to-digits [pop not] [popd] [_actd_R0] [i cons] genrec\n", |
@@ -64,7 +64,7 @@ clear | ||
64 | 64 | |
65 | 65 | [sub-carry-from-digits [pop not] [popd] [_scfd_R0] [i cons-but-not-leading-zeroes] genrec] inscribe |
66 | 66 | [_scfd_R0 uncons 0 swap [sub-with-carry] dip] inscribe |
67 | -[cons-but-not-leading-zeroes [[bool] ii | not] [popd] [cons] ifte] | |
67 | +[cons-but-not-leading-zeroes [P'] [cons] [popd] ifte] | |
68 | 68 | |
69 | 69 | [sub-with-carry _sub-with-carry0 _sub-with-carry1] |
70 | 70 | [_sub-with-carry0 rolldown bool-to-int [-] ii] |
@@ -92,6 +92,3 @@ build-two-list-combiner | ||
92 | 92 | inscribe |
93 | 93 | |
94 | 94 | |
95 | -true [0 1] sub-carry-from-digits | |
96 | - | |
97 | - |