﻿⍝ Part 3 - ∥ (parallel) and ∥¨ (parallel each)
⍝ ∥   =>   II or isolate.ll
⍝ ∥¨       IÏ    isolate.llEach
z←⎕DL IÏ 3 6 9
isolate.State ''
z
isolate.State ''
iss
)erase iss
isolate.State ''
)copy dfns queens
q←queens IÏ ⍳12
≢¨isolate.Values 'q'
isolate.Running 'q'
¯1↑isolate.Values 'q'
≢¨q
⍝ Now open Task Manager
T←⎕AI ⋄ ≢¨queens  ¨ 4⍴12 ⋄ ⎕AI-T
T←⎕AI ⋄ ≢¨queens IÏ 4⍴12 ⋄ ⎕AI-T

⎕FX 'r←loop n' 'r←3⊃⎕AI' ':While 0<n←n-1 ⋄ {}∪10000?10000 ⋄ :End' 'r←(3⊃⎕AI)-r'
⎕VR 'loop'
loop 1000
T←⎕AI ⋄ loop  ¨ 4⍴10000 ⋄ ⎕AI-T
T←⎕AI ⋄ loop IÏ 4⍴10000 ⋄ ⎕AI-T
queens_asynch←queens II              ⍝ f II  ←→ f∥  ⍝ asynchronous version
q12←queens_asynch 12                 ⍝ z is a future
'MYGUI' ⎕WC 'Form' 'Hello Naxos Beach!' ('Posn' 10 10)('Size' 10 40)
'MYGUI.TEXT'⎕WC'Label'(txt←'# of solutions to queens 12 is ...')('Size'⍬ 90)('Font' 'Courier' 20)
{MYGUI.TEXT.Caption←(¯3↓txt),⍕≢q12}&0
⎕DQ 'MYGUI'