@@ -2,19 +2,19 @@
3Mock interpreter
3Mock interpreter
5−Bottom-level [mock]() (virtual nock) interpreter. Produces a
5+Bottom-level mock (virtual nock) interpreter. Produces a
6−[`++tone`](), a nock computation result. If nock 11 is invoked, `sky`
6+`++tone`, a nock computation result. If nock 11 is invoked, `sky`
7−computes on the subject and produces a [`++unit`]() result. An empty
7+computes on the subject and produces a `++unit` result. An empty
8result becomes a `%1` `++tone`, indicating a block.
8result becomes a `%1` `++tone`, indicating a block.
13−`sub` is the subject as a [noun]().
13+`sub` is the subject as a noun.
15`fol` is the formula as a noun.
15`fol` is the formula as a noun.
17−`sky` is an [`%iron`]() gate invoked with [nock operator 11]().
17+`sky` is an `%iron` gate invoked with nock operator 11.
@@ -26,98 +26,100 @@ Source
29− |= [[sub=* fol=*] sky=$+(* (unit))]
29+ |= {{sub/* fol/*} gul/$-({* *} (unit (unit)))}
30− =+ tax=*(list ,[@ta *])
30+ =+ tax=*(list {@ta *})
31 |- ^- tone
31 |- ^- tone
34 ?: ?=(^ -.fol)
34 ?: ?=(^ -.fol)
35 =+ hed=$(fol -.fol)
35 =+ hed=$(fol -.fol)
36− ?: ?=(%2 -.hed)
36+ ?: ?=($2 -.hed)
38 =+ tal=$(fol +.fol)
38 =+ tal=$(fol +.fol)
40− %0 ?-(-.hed %0 [%0 p.hed p.tal], %1 hed)
40+ $0 ?-(-.hed $0 [%0 p.hed p.tal], $1 hed)
41− %1 ?-(-.hed %0 tal, %1 [%1 (weld p.hed p.tal)])
41+ $1 ?-(-.hed $0 tal, $1 [%1 (weld p.hed p.tal)])
48 ?: =(0 b.fol) [%2 tax]
48 ?: =(0 b.fol) [%2 tax]
49 ?: =(1 b.fol) [%0 sub]
49 ?: =(1 b.fol) [%0 sub]
50 ?: ?=(@ sub) [%2 tax]
50 ?: ?=(@ sub) [%2 tax]
51 =+ [now=(cap b.fol) lat=(mas b.fol)]
51 =+ [now=(cap b.fol) lat=(mas b.fol)]
52 $(b.fol lat, sub ?:(=(2 now) -.sub +.sub))
52 $(b.fol lat, sub ?:(=(2 now) -.sub +.sub))
55 [%0 b.fol]
55 [%0 b.fol]
57− [2 b=[^ *]]
57+ {$2 b/{^ *}}
58 =+ ben=$(fol b.fol)
58 =+ ben=$(fol b.fol)
59− ?. ?=(%0 -.ben) ben
59+ ?. ?=($0 -.ben) ben
60 ?>(?=(^ p.ben) $(sub -.p.ben, fol +.p.ben))
60 ?>(?=(^ p.ben) $(sub -.p.ben, fol +.p.ben))
61 ::?>(?=(^ p.ben) $([sub fol] p.ben)
61 ::?>(?=(^ p.ben) $([sub fol] p.ben)
64 =+ ben=$(fol b.fol)
64 =+ ben=$(fol b.fol)
65− ?. ?=(%0 -.ben) ben
65+ ?. ?=($0 -.ben) ben
66 [%0 .?(p.ben)]
66 [%0 .?(p.ben)]
69 =+ ben=$(fol b.fol)
69 =+ ben=$(fol b.fol)
70− ?. ?=(%0 -.ben) ben
70+ ?. ?=($0 -.ben) ben
71 ?. ?=(@ p.ben) [%2 tax]
71 ?. ?=(@ p.ben) [%2 tax]
72 [%0 .+(p.ben)]
72 [%0 .+(p.ben)]
75 =+ ben=$(fol b.fol)
75 =+ ben=$(fol b.fol)
76− ?. ?=(%0 -.ben) ben
76+ ?. ?=($0 -.ben) ben
77 ?. ?=(^ p.ben) [%2 tax]
77 ?. ?=(^ p.ben) [%2 tax]
78 [%0 =(-.p.ben +.p.ben)]
78 [%0 =(-.p.ben +.p.ben)]
80− [6 b=* c=* d=*]
80+ {$6 b/* c/* d/*}
81 $(fol =>(fol [2 [0 1] 2 [1 c d] [1 0] 2 [1 2 3] [1 0] 4 4 b]))
81 $(fol =>(fol [2 [0 1] 2 [1 c d] [1 0] 2 [1 2 3] [1 0] 4 4 b]))
83− [7 b=* c=*] $(fol =>(fol [2 b 1 c]))
83+ {$7 b/* c/*} $(fol =>(fol [2 b 1 c]))
84− [8 b=* c=*] $(fol =>(fol [7 [[0 1] b] c]))
84+ {$8 b/* c/*} $(fol =>(fol [7 [[0 1] b] c]))
85− [9 b=* c=*] $(fol =>(fol [7 c 0 b]))
85+ {$9 b/* c/*} $(fol =>(fol [7 c 0 b]))
86− [10 @ c=*] $(fol c.fol)
86+ {$10 @ c/*} $(fol c.fol)
87− [10 [b=* c=*] d=*]
87+ {$10 {b/* c/*} d/*}
88 =+ ben=$(fol c.fol)
88 =+ ben=$(fol c.fol)
89− ?. ?=(%0 -.ben) ben
89+ ?. ?=($0 -.ben) ben
90− ?: ?=(?(%hunk %lose %mean %spot) b.fol)
90+ ?: ?=(?($hunk $hand $lose $mean $spot) b.fol)
91 $(fol d.fol, tax [[b.fol p.ben] tax])
91 $(fol d.fol, tax [[b.fol p.ben] tax])
92 $(fol d.fol)
92 $(fol d.fol)
94− [11 b=*]
94+ {$11 b/* c/*}
95− =+ ben=$(fol b.fol)
96+ =+ ben=$(fol c.fol)
96− ?. ?=(%0 -.ben) ben
98+ ?. ?=($0 -.ben) ben
97− =+ val=(sky p.ben)
99+ =+ val=(gul p.ref p.ben)
98− ?~(val [%1 p.ben ~] [%0 u.val])
100+ ?~(val [%1 p.ben ~] ?~(u.val [%2 [[%hunk (mush p.ben)] tax]] [%0 u.u.val]))
106− ~zod/try=> (mink [20 [4 0 1]] ,~)
108+ ~zod/try=> (mink [20 [4 0 1]] $~)
107 [%0 p=21]
109 [%0 p=21]
108− ~zod/try=> (mink [[90 5 3] [0 3]] ,~)
110+ ~zod/try=> (mink [[90 5 3] [0 3]] $~)
109 [%0 p=[5 3]]
111 [%0 p=[5 3]]
110− ~zod/try=> (mink 20^[4 0 1] ,~)
112+ ~zod/try=> (mink 20^[4 0 1] $~)
111 [%0 p=21]
113 [%0 p=21]
112− ~zod/try=> (mink [90 5 3]^[0 3] ,~)
114+ ~zod/try=> (mink [90 5 3]^[0 3] $~)
113 [%0 p=[5 3]]
115 [%0 p=[5 3]]
114− ~zod/try=> (mink [0]^[11 1 20] ,~)
116+ ~zod/try=> (mink [0]^[11 1 20] $~)
115 [%1 p=~[20]]
117 [%1 p=~[20]]
116 ~zod/try=> (mink [0]^[11 1 20] |=(a=* `[40 a]))
118 ~zod/try=> (mink [0]^[11 1 20] |=(a=* `[40 a]))
117 [%0 p=[40 20]]
119 [%0 p=[40 20]]
118− ~zod/try=> (mink [5]^[0 2] ,~)
120+ ~zod/try=> (mink [5]^[0 2] $~)
120− ~zod/try=> (mink [5]^[10 yelp/[0 1] 0 0] ,~)
122+ ~zod/try=> (mink [5]^[10 yelp/[0 1] 0 0] $~)
121 [%2 p=~[[~.yelp 5]]]
123 [%2 p=~[[~.yelp 5]]]