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
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] . i 6 [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] . i 5 [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] . i 4 [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] . i 3 [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] . i 2 [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] . i 1 [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] . i 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