34 KiB
34 KiB
In [1]:
from notebook_preamble import J, V, defineIn [2]:
define('P [3 % not] dupdip 5 % not or')In [3]:
V('80 P') • 80 P
80 • P
80 • [3 % not] dupdip 5 % not or
80 [3 % not] • dupdip 5 % not or
80 • 3 % not 80 5 % not or
80 3 • % not 80 5 % not or
2 • not 80 5 % not or
False • 80 5 % not or
False 80 • 5 % not or
False 80 5 • % not or
False 0 • not or
False True • or
True •
In [4]:
define('PE1.1 + [+] dupdip')In [5]:
V('0 0 3 PE1.1') • 0 0 3 PE1.1
0 • 0 3 PE1.1
0 0 • 3 PE1.1
0 0 3 • PE1.1
0 0 3 • + [+] dupdip
0 3 • [+] dupdip
0 3 [+] • dupdip
0 3 • + 3
3 • 3
3 3 •
In [6]:
V('0 0 [3 2 1 3 1 2 3] [PE1.1] step') • 0 0 [3 2 1 3 1 2 3] [PE1.1] step
0 • 0 [3 2 1 3 1 2 3] [PE1.1] step
0 0 • [3 2 1 3 1 2 3] [PE1.1] step
0 0 [3 2 1 3 1 2 3] • [PE1.1] step
0 0 [3 2 1 3 1 2 3] [PE1.1] • step
0 0 3 [PE1.1] • i [2 1 3 1 2 3] [PE1.1] step
0 0 3 • PE1.1 [2 1 3 1 2 3] [PE1.1] step
0 0 3 • + [+] dupdip [2 1 3 1 2 3] [PE1.1] step
0 3 • [+] dupdip [2 1 3 1 2 3] [PE1.1] step
0 3 [+] • dupdip [2 1 3 1 2 3] [PE1.1] step
0 3 • + 3 [2 1 3 1 2 3] [PE1.1] step
3 • 3 [2 1 3 1 2 3] [PE1.1] step
3 3 • [2 1 3 1 2 3] [PE1.1] step
3 3 [2 1 3 1 2 3] • [PE1.1] step
3 3 [2 1 3 1 2 3] [PE1.1] • step
3 3 2 [PE1.1] • i [1 3 1 2 3] [PE1.1] step
3 3 2 • PE1.1 [1 3 1 2 3] [PE1.1] step
3 3 2 • + [+] dupdip [1 3 1 2 3] [PE1.1] step
3 5 • [+] dupdip [1 3 1 2 3] [PE1.1] step
3 5 [+] • dupdip [1 3 1 2 3] [PE1.1] step
3 5 • + 5 [1 3 1 2 3] [PE1.1] step
8 • 5 [1 3 1 2 3] [PE1.1] step
8 5 • [1 3 1 2 3] [PE1.1] step
8 5 [1 3 1 2 3] • [PE1.1] step
8 5 [1 3 1 2 3] [PE1.1] • step
8 5 1 [PE1.1] • i [3 1 2 3] [PE1.1] step
8 5 1 • PE1.1 [3 1 2 3] [PE1.1] step
8 5 1 • + [+] dupdip [3 1 2 3] [PE1.1] step
8 6 • [+] dupdip [3 1 2 3] [PE1.1] step
8 6 [+] • dupdip [3 1 2 3] [PE1.1] step
8 6 • + 6 [3 1 2 3] [PE1.1] step
14 • 6 [3 1 2 3] [PE1.1] step
14 6 • [3 1 2 3] [PE1.1] step
14 6 [3 1 2 3] • [PE1.1] step
14 6 [3 1 2 3] [PE1.1] • step
14 6 3 [PE1.1] • i [1 2 3] [PE1.1] step
14 6 3 • PE1.1 [1 2 3] [PE1.1] step
14 6 3 • + [+] dupdip [1 2 3] [PE1.1] step
14 9 • [+] dupdip [1 2 3] [PE1.1] step
14 9 [+] • dupdip [1 2 3] [PE1.1] step
14 9 • + 9 [1 2 3] [PE1.1] step
23 • 9 [1 2 3] [PE1.1] step
23 9 • [1 2 3] [PE1.1] step
23 9 [1 2 3] • [PE1.1] step
23 9 [1 2 3] [PE1.1] • step
23 9 1 [PE1.1] • i [2 3] [PE1.1] step
23 9 1 • PE1.1 [2 3] [PE1.1] step
23 9 1 • + [+] dupdip [2 3] [PE1.1] step
23 10 • [+] dupdip [2 3] [PE1.1] step
23 10 [+] • dupdip [2 3] [PE1.1] step
23 10 • + 10 [2 3] [PE1.1] step
33 • 10 [2 3] [PE1.1] step
33 10 • [2 3] [PE1.1] step
33 10 [2 3] • [PE1.1] step
33 10 [2 3] [PE1.1] • step
33 10 2 [PE1.1] • i [3] [PE1.1] step
33 10 2 • PE1.1 [3] [PE1.1] step
33 10 2 • + [+] dupdip [3] [PE1.1] step
33 12 • [+] dupdip [3] [PE1.1] step
33 12 [+] • dupdip [3] [PE1.1] step
33 12 • + 12 [3] [PE1.1] step
45 • 12 [3] [PE1.1] step
45 12 • [3] [PE1.1] step
45 12 [3] • [PE1.1] step
45 12 [3] [PE1.1] • step
45 12 3 [PE1.1] • i
45 12 3 • PE1.1
45 12 3 • + [+] dupdip
45 15 • [+] dupdip
45 15 [+] • dupdip
45 15 • + 15
60 • 15
60 15 •
In [7]:
1000 / 15Out [7]:
66.66666666666667
In [8]:
66 * 15Out [8]:
990
In [9]:
1000 - 990Out [9]:
10
In [10]:
999 - 990Out [10]:
9
In [11]:
define('PE1 0 0 66 [[3 2 1 3 1 2 3] [PE1.1] step] times [3 2 1 3] [PE1.1] step pop')In [12]:
J('PE1')233168
In [13]:
0b11100111011011Out [13]:
14811
In [14]:
define('PE1.2 [3 & PE1.1] dupdip 2 >>')In [15]:
V('0 0 14811 PE1.2') • 0 0 14811 PE1.2
0 • 0 14811 PE1.2
0 0 • 14811 PE1.2
0 0 14811 • PE1.2
0 0 14811 • [3 & PE1.1] dupdip 2 >>
0 0 14811 [3 & PE1.1] • dupdip 2 >>
0 0 14811 • 3 & PE1.1 14811 2 >>
0 0 14811 3 • & PE1.1 14811 2 >>
0 0 3 • PE1.1 14811 2 >>
0 0 3 • + [+] dupdip 14811 2 >>
0 3 • [+] dupdip 14811 2 >>
0 3 [+] • dupdip 14811 2 >>
0 3 • + 3 14811 2 >>
3 • 3 14811 2 >>
3 3 • 14811 2 >>
3 3 14811 • 2 >>
3 3 14811 2 • >>
3 3 3702 •
In [16]:
V('3 3 3702 PE1.2') • 3 3 3702 PE1.2
3 • 3 3702 PE1.2
3 3 • 3702 PE1.2
3 3 3702 • PE1.2
3 3 3702 • [3 & PE1.1] dupdip 2 >>
3 3 3702 [3 & PE1.1] • dupdip 2 >>
3 3 3702 • 3 & PE1.1 3702 2 >>
3 3 3702 3 • & PE1.1 3702 2 >>
3 3 2 • PE1.1 3702 2 >>
3 3 2 • + [+] dupdip 3702 2 >>
3 5 • [+] dupdip 3702 2 >>
3 5 [+] • dupdip 3702 2 >>
3 5 • + 5 3702 2 >>
8 • 5 3702 2 >>
8 5 • 3702 2 >>
8 5 3702 • 2 >>
8 5 3702 2 • >>
8 5 925 •
In [17]:
V('0 0 14811 7 [PE1.2] times pop') • 0 0 14811 7 [PE1.2] times pop
0 • 0 14811 7 [PE1.2] times pop
0 0 • 14811 7 [PE1.2] times pop
0 0 14811 • 7 [PE1.2] times pop
0 0 14811 7 • [PE1.2] times pop
0 0 14811 7 [PE1.2] • times pop
0 0 14811 • PE1.2 6 [PE1.2] times pop
0 0 14811 • [3 & PE1.1] dupdip 2 >> 6 [PE1.2] times pop
0 0 14811 [3 & PE1.1] • dupdip 2 >> 6 [PE1.2] times pop
0 0 14811 • 3 & PE1.1 14811 2 >> 6 [PE1.2] times pop
0 0 14811 3 • & PE1.1 14811 2 >> 6 [PE1.2] times pop
0 0 3 • PE1.1 14811 2 >> 6 [PE1.2] times pop
0 0 3 • + [+] dupdip 14811 2 >> 6 [PE1.2] times pop
0 3 • [+] dupdip 14811 2 >> 6 [PE1.2] times pop
0 3 [+] • dupdip 14811 2 >> 6 [PE1.2] times pop
0 3 • + 3 14811 2 >> 6 [PE1.2] times pop
3 • 3 14811 2 >> 6 [PE1.2] times pop
3 3 • 14811 2 >> 6 [PE1.2] times pop
3 3 14811 • 2 >> 6 [PE1.2] times pop
3 3 14811 2 • >> 6 [PE1.2] times pop
3 3 3702 • 6 [PE1.2] times pop
3 3 3702 6 • [PE1.2] times pop
3 3 3702 6 [PE1.2] • times pop
3 3 3702 • PE1.2 5 [PE1.2] times pop
3 3 3702 • [3 & PE1.1] dupdip 2 >> 5 [PE1.2] times pop
3 3 3702 [3 & PE1.1] • dupdip 2 >> 5 [PE1.2] times pop
3 3 3702 • 3 & PE1.1 3702 2 >> 5 [PE1.2] times pop
3 3 3702 3 • & PE1.1 3702 2 >> 5 [PE1.2] times pop
3 3 2 • PE1.1 3702 2 >> 5 [PE1.2] times pop
3 3 2 • + [+] dupdip 3702 2 >> 5 [PE1.2] times pop
3 5 • [+] dupdip 3702 2 >> 5 [PE1.2] times pop
3 5 [+] • dupdip 3702 2 >> 5 [PE1.2] times pop
3 5 • + 5 3702 2 >> 5 [PE1.2] times pop
8 • 5 3702 2 >> 5 [PE1.2] times pop
8 5 • 3702 2 >> 5 [PE1.2] times pop
8 5 3702 • 2 >> 5 [PE1.2] times pop
8 5 3702 2 • >> 5 [PE1.2] times pop
8 5 925 • 5 [PE1.2] times pop
8 5 925 5 • [PE1.2] times pop
8 5 925 5 [PE1.2] • times pop
8 5 925 • PE1.2 4 [PE1.2] times pop
8 5 925 • [3 & PE1.1] dupdip 2 >> 4 [PE1.2] times pop
8 5 925 [3 & PE1.1] • dupdip 2 >> 4 [PE1.2] times pop
8 5 925 • 3 & PE1.1 925 2 >> 4 [PE1.2] times pop
8 5 925 3 • & PE1.1 925 2 >> 4 [PE1.2] times pop
8 5 1 • PE1.1 925 2 >> 4 [PE1.2] times pop
8 5 1 • + [+] dupdip 925 2 >> 4 [PE1.2] times pop
8 6 • [+] dupdip 925 2 >> 4 [PE1.2] times pop
8 6 [+] • dupdip 925 2 >> 4 [PE1.2] times pop
8 6 • + 6 925 2 >> 4 [PE1.2] times pop
14 • 6 925 2 >> 4 [PE1.2] times pop
14 6 • 925 2 >> 4 [PE1.2] times pop
14 6 925 • 2 >> 4 [PE1.2] times pop
14 6 925 2 • >> 4 [PE1.2] times pop
14 6 231 • 4 [PE1.2] times pop
14 6 231 4 • [PE1.2] times pop
14 6 231 4 [PE1.2] • times pop
14 6 231 • PE1.2 3 [PE1.2] times pop
14 6 231 • [3 & PE1.1] dupdip 2 >> 3 [PE1.2] times pop
14 6 231 [3 & PE1.1] • dupdip 2 >> 3 [PE1.2] times pop
14 6 231 • 3 & PE1.1 231 2 >> 3 [PE1.2] times pop
14 6 231 3 • & PE1.1 231 2 >> 3 [PE1.2] times pop
14 6 3 • PE1.1 231 2 >> 3 [PE1.2] times pop
14 6 3 • + [+] dupdip 231 2 >> 3 [PE1.2] times pop
14 9 • [+] dupdip 231 2 >> 3 [PE1.2] times pop
14 9 [+] • dupdip 231 2 >> 3 [PE1.2] times pop
14 9 • + 9 231 2 >> 3 [PE1.2] times pop
23 • 9 231 2 >> 3 [PE1.2] times pop
23 9 • 231 2 >> 3 [PE1.2] times pop
23 9 231 • 2 >> 3 [PE1.2] times pop
23 9 231 2 • >> 3 [PE1.2] times pop
23 9 57 • 3 [PE1.2] times pop
23 9 57 3 • [PE1.2] times pop
23 9 57 3 [PE1.2] • times pop
23 9 57 • PE1.2 2 [PE1.2] times pop
23 9 57 • [3 & PE1.1] dupdip 2 >> 2 [PE1.2] times pop
23 9 57 [3 & PE1.1] • dupdip 2 >> 2 [PE1.2] times pop
23 9 57 • 3 & PE1.1 57 2 >> 2 [PE1.2] times pop
23 9 57 3 • & PE1.1 57 2 >> 2 [PE1.2] times pop
23 9 1 • PE1.1 57 2 >> 2 [PE1.2] times pop
23 9 1 • + [+] dupdip 57 2 >> 2 [PE1.2] times pop
23 10 • [+] dupdip 57 2 >> 2 [PE1.2] times pop
23 10 [+] • dupdip 57 2 >> 2 [PE1.2] times pop
23 10 • + 10 57 2 >> 2 [PE1.2] times pop
33 • 10 57 2 >> 2 [PE1.2] times pop
33 10 • 57 2 >> 2 [PE1.2] times pop
33 10 57 • 2 >> 2 [PE1.2] times pop
33 10 57 2 • >> 2 [PE1.2] times pop
33 10 14 • 2 [PE1.2] times pop
33 10 14 2 • [PE1.2] times pop
33 10 14 2 [PE1.2] • times pop
33 10 14 • PE1.2 1 [PE1.2] times pop
33 10 14 • [3 & PE1.1] dupdip 2 >> 1 [PE1.2] times pop
33 10 14 [3 & PE1.1] • dupdip 2 >> 1 [PE1.2] times pop
33 10 14 • 3 & PE1.1 14 2 >> 1 [PE1.2] times pop
33 10 14 3 • & PE1.1 14 2 >> 1 [PE1.2] times pop
33 10 2 • PE1.1 14 2 >> 1 [PE1.2] times pop
33 10 2 • + [+] dupdip 14 2 >> 1 [PE1.2] times pop
33 12 • [+] dupdip 14 2 >> 1 [PE1.2] times pop
33 12 [+] • dupdip 14 2 >> 1 [PE1.2] times pop
33 12 • + 12 14 2 >> 1 [PE1.2] times pop
45 • 12 14 2 >> 1 [PE1.2] times pop
45 12 • 14 2 >> 1 [PE1.2] times pop
45 12 14 • 2 >> 1 [PE1.2] times pop
45 12 14 2 • >> 1 [PE1.2] times pop
45 12 3 • 1 [PE1.2] times pop
45 12 3 1 • [PE1.2] times pop
45 12 3 1 [PE1.2] • times pop
45 12 3 • PE1.2 pop
45 12 3 • [3 & PE1.1] dupdip 2 >> pop
45 12 3 [3 & PE1.1] • dupdip 2 >> pop
45 12 3 • 3 & PE1.1 3 2 >> pop
45 12 3 3 • & PE1.1 3 2 >> pop
45 12 3 • PE1.1 3 2 >> pop
45 12 3 • + [+] dupdip 3 2 >> pop
45 15 • [+] dupdip 3 2 >> pop
45 15 [+] • dupdip 3 2 >> pop
45 15 • + 15 3 2 >> pop
60 • 15 3 2 >> pop
60 15 • 3 2 >> pop
60 15 3 • 2 >> pop
60 15 3 2 • >> pop
60 15 0 • pop
60 15 •
In [18]:
define('PE1 0 0 66 [14811 7 [PE1.2] times pop] times 14811 4 [PE1.2] times popop')In [19]:
J('PE1')233168
In [20]:
define('PE1.3 14811 swap [PE1.2] times pop')In [21]:
define('PE1 0 0 66 [7 PE1.3] times 4 PE1.3 pop')In [22]:
J('PE1')233168
In [23]:
define('PE1.terms [0 swap [dup [pop 14811] [] branch [3 &] dupdip 2 >>] dip rest cons]')In [24]:
J('PE1.terms 21 [x] times')3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 [0 swap [dup [pop 14811] [] branch [3 &] dupdip 2 >>] dip rest cons]
In [25]:
J('7 66 * 4 +')466
In [26]:
J('PE1.terms 466 [x] times pop')3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3
In [27]:
J('[PE1.terms 466 [x] times pop] run sum')999
In [28]:
J('0 0 PE1.terms 466 [x [PE1.1] dip] times popop')233168
In [29]:
J('[10 9 8 7 6 5 4 3 2 1] sum')55
In [30]:
define('F dup ++ * 2 floordiv')In [31]:
V('10 F')• 10 F 10 • F 10 • dup ++ * 2 floordiv 10 10 • ++ * 2 floordiv 10 11 • * 2 floordiv 110 • 2 floordiv 110 2 • floordiv 55 •
In [32]:
J('[3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip')[[978 15] [980 12] [981 10] [984 9] [985 6] [987 5] [990 3]]
In [33]:
J('[3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip [sum] map')[993 992 991 993 991 992 993]
In [34]:
J('[ 3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip [sum] map sum')6945
In [35]:
J('6945 33 * [993 995 996 999] cons sum')233168