Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
45
Task/Truth-table/APL/truth-table.apl
Normal file
45
Task/Truth-table/APL/truth-table.apl
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
truth←{
|
||||
op←⍉↑'~∧∨≠→('(4 3 2 2 1 0)
|
||||
order←⍬⍬{
|
||||
out stk←⍺
|
||||
0=≢⍵:out,⌽stk
|
||||
c rst←(⊃⍵) (1↓⍵)
|
||||
c∊⎕A:((out,c)stk)∇rst
|
||||
c∊'01':((out,⍎c)stk)∇rst
|
||||
(c≠'(')∧(≢op)≥n←op[;1]⍳c:rst∇⍨out{
|
||||
cnd←⌽∧\⌽(⍵≠'(')∧op[op[;1]⍳⍵;2]≥op[n;2]
|
||||
(⍺,⌽cnd/⍵)(((~cnd)/⍵),c)
|
||||
}stk
|
||||
c='(':(out(stk,c))∇rst
|
||||
c=')':rst∇⍨out{
|
||||
⍬≡par←⍸'('=⍵:'Missing ('⎕SIGNAL 11
|
||||
n←⌈/par
|
||||
(⍺,n↓⍵)((n-1)↑⍵)
|
||||
}stk
|
||||
('Invalid character ',c)⎕SIGNAL 11
|
||||
}1(819⌶)⍵~4↑⎕TC
|
||||
'('∊order:'Missing )'⎕SIGNAL 11
|
||||
nvar←≢vars←∪(order∊⎕A)/order
|
||||
eval←{
|
||||
⍺←⍬
|
||||
0=≢⍵:{
|
||||
1≠≢⍵:'Missing operator'⎕SIGNAL 11 ⋄ ⊃⍵
|
||||
}⍺
|
||||
c rst←(⊃⍵) (1↓⍵)
|
||||
c∊⎕A:(⍺⍺[vars⍳c],⍺)∇rst
|
||||
c∊0 1:(c,⍺)∇rst
|
||||
c='~':(⍺≠1 0↑⍨≢⍺)∇rst ⊣ 'Missing operand'⎕SIGNAL(0=≢⍺)/11
|
||||
c∊op[;1]:({
|
||||
2>≢⍵:'Missing operand'⎕SIGNAL 11
|
||||
c='→':(≥/2↑⍵),2↓⍵
|
||||
((⍎c)/2↑⍵),2↓⍵
|
||||
}⍺)∇rst
|
||||
}
|
||||
_←(nvar/0) eval order
|
||||
confs←⍉(nvar/2)⊤¯1+⍳2*nvar
|
||||
tab←'FT│'[1+(confs,2),{⍵ eval order}¨↓confs]
|
||||
tab←↑,/ ' ',¨tab
|
||||
hdr←((∊,/(' ',¨vars),' '),[0.5]'─'),⍪'│┼'
|
||||
hdr←hdr,(' ',⍵,' '),[0.5]'─'
|
||||
hdr⍪(,∘' '⍣(⊃⊃-/1↓¨⍴¨hdr tab))tab
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue