⍝ Shell for Eide-number sums:
⍝ Esh uses quote-quad input and output. For testing, we modify a copy
⍝ of the function to input from variable ∆i and output to variable ∆o.
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
∆in←{ ⍝ input from buffer ⍝
buf←⍵,⊃∆i ⍝
∆o,←⊂buf ⍝
∆i↓⍨←1 ⍝
buf ⍝
} ⍝
⍝
qp←'⍞⊣⍞←' ' ∆in'∘subs ⍝ subs quote-quad prompt ⍝
qt←'⍞←⍵,⊃⌽⎕TC' '∆o,←⊂⍵'∘subs ⍝ subs quote-quad output ⍝
qz←': ' ':0'∘subs ⍝ subs void to 0 result ⍝
⍝
esh_←esh ⍝ copy for modification ⍝
⍝
_←⎕fx qz qt qp ⎕cr'esh_' ⍝ modify function. ⍝
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
∆i ∆o←⍬ ⍬ ⍝ input/output buffers.
∆i,←⊂''
∆i,←⊂'1 2 3 4'
∆i,←⊂'¯5 ¯5'
∆i,←⊂'..99'
∆i,←⊂'..123123.123123.. ⍝ Euler''s Claim'
∆i,←⊂'<12|3|45>'
∆i,←⊂''
∆i,←⊂'{-0+} ⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ Balanced Ternary'
∆i,←⊂''
∆i,←⊂'..-- 0.++.. ⍝ 2×÷2'
∆i,←⊂'0.+ 0.+ 0.+ ⍝ 3×÷3'
∆i,←⊂'0.+-+-.. 0.+-+-.. 0.+-+-.. 0.+-+-.. ⍝ 4×÷4'
∆i,←⊂''
∆i,←⊂'{=-0} ⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ Inverted Ternary'
∆i,←⊂''
∆i,←⊂'<-|0|->'
∆i,←⊂'<=|-|=>'
∆i,←⊂'{-0+#} ⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ Pos-skewed four'
∆i,←⊂''
∆i,←⊂'..##0 ⍝ lru-clearing'
∆i,←⊂''
∆i,←⊂'0.# 0.# ⍝ one-half'
∆i,←⊂''
∆i,←⊂'{=-0+} ⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ Neg-skewed four'
∆i,←⊂''
∆i,←⊂'+.= +.= ⍝ one-half'
∆i,←⊂''
∆i,←⊂'⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ Errors:'
∆i,←⊂'{0123456789}'
∆i,←⊂''
∆i,←⊂'{123'
∆i,←⊂'{123}'
∆i,←⊂'{010}'
∆i,←⊂'{01|}'
∆i,←⊂''
∆i,←⊂'99..'
∆i,←⊂'1.2.3'
∆i,←⊂''
∆i,←⊂')'
↑∆o⊣esh_ ⎕d ⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ emulate esh session.
1 2 3 4
10
¯5 ¯5
¯10
..99
¯1
..123123.123123.. ⍝ Euler's Claim
0
<12|3|45>
2.2424..
{-0+} ⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ Balanced Ternary
..-- 0.++.. ⍝ 2×÷2
+
0.+ 0.+ 0.+ ⍝ 3×÷3
+
0.+-+-.. 0.+-+-.. 0.+-+-.. 0.+-+-.. ⍝ 4×÷4
+
{=-0} ⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ Inverted Ternary
<-|0|->
¯-
<=|-|=>
¯-
{-0+#} ⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ Pos-skewed four
..##0 ⍝ lru-clearing
-+.++..
0.# 0.# ⍝ one-half
+
{=-0+} ⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ Neg-skewed four
+.= +.= ⍝ one-half
+
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ Errors:
{0123456789}
{123
bad {}s
{123}
missing 0
{010}
duplicate digits
{01|}
bad char
99..
bad number
1.2.3
bad number
)
⍝∇ esh subs ratsum
Back to: code
Back to: Workspaces