# Comptime (These come first so that they are not the source of later errors)
X ← 5
Y ← comptime(X)
⍤⤙≍ X Y
Z ← comptime(+1Y)
⍤⤙≍ Z +1 X
A ← ⧻Lena
⍤⤙≍ 512 comptime(A)
⍤⤙≍ 512 comptime(A)
# Number literals
⍤⤙≍ 11 ⧻[
ri
ηi πi τi
ηr πr τr
3r4i 3r4iη 3r4iπ 3r4iτ
]
⍤⤙≍ 18 ⧻[
ηη ηπ ητ
πη ππ πτ
τη τπ ττ
]
⍤⤙≍ 4 ⧻[r r i i]
# Basic pervasive math
⍤⤙≍ [2 3 4] + 1 [1 2 3]
⍤⤙≍ [5 7 9] + [1 2 3] [4 5 6]
⍤⤙≍ [7 7 6] + [1 2 3] [6 5 3]
⍤⤙≍ [7 7 8] + [1 2 3] [6 5 5]
⍤⤙≍ [5 6 7] + [1 2 3] 4
⍤⤙≍ [2_3_4 6_7_8 10_11_12] + [1 2 3] [1_2_3 4_5_6 7_8_9]
⍤⤙≍ [2_3_4 6_7_8 10_11_12] + [1_2_3 4_5_6 7_8_9] [1 2 3]
⍤⤙≍ [0_1_2 2_3_4 4_5_6] - [1 2 3] [1_2_3 4_5_6 7_8_9]
⍤⤙≍ ¯[0_1_2 2_3_4 4_5_6] - [1_2_3 4_5_6 7_8_9] [1 2 3]
⍤⤙≍ ⟜(×1_2) ↯2_0 0
⍤⤙≍ ⟜(×2) ↯0_2 0
⍤⤙≍ ⟜(×2) ↯0_0 0
⍤⤙≍ ⟜(×2) ↯0_0_0 0
⍤⤙≍ ⟜(×[2]) ↯0_0_0 0
⍤⤙≍ °△2_0_2 ×2°△2_0_2
⍤⤙≍ [1 0 ¯1 ¯2 ¯3] -⊙1 ⇡5
⍤⤙≍ [∞ 1 1/2 1/3 1/4] ÷⊙1 ⇡5
⍤⤙≍ [¯∞ ¯1 ¯1/2 ¯1/3 ¯1/4] ÷⊙¯1 ⇡5
# Fixed pervasive math
⍤⤙≍ ⊃≡++ ¤100_200 [[1_2 3_4] [5_6 7_8] [9_10 11_12]]
⍤⤙≍ ⊃≡≡++ ¤¤100_200 [[1_2 3_4] [5_6 7_8] [9_10 11_12]]
⍤⤙≍ ⊃≡++ 10_20 [1_2_3 4_5_6]
⍤⤙≍ ⊃≡++ ¤10_20_30 [1_2_3 4_5_6]
⍤⤙≍ ⊃≡-- ¤[1 2 3] [4 5 6]
⍤⤙≍ 0_3 △ +¤ ↯3 0 ↯0_3 0
⍤⤙≍ 1_3 △ +¤ ↯3 0 ↯1_3 0
⍤⤙≍ ⊃≡≡++ ¤¤0 ⇡10
⍤⤙≍ ⊃≡++ [0_1_2 3_4_5] ¤ [0_3_6 1_4_7 2_5_8]
⍤⤙≍ ⊃≡++ ¤ [0_1_2 3_4_5 6_7_8] [0_3_6 1_4_7 2_5_8]
⍤⤙≍ [11_12_13 21_22_23 31_32_33 41_42_43] + ¤[1 2 3] [10 20 30 40]
⍤⤙≍ [11_21_31_41 12_22_32_42 13_23_33_43] + ⊙¤[1 2 3] [10 20 30 40]
⍤⤙≍ [11_22_33 41_52_63] + ¤[1 2 3] [10_20_30 40_50_60]
⍤⤙≍ ⊃≡++ ¤ [10 20 30] ↯4_3_2⇡24
⍤⤙≍ ⊃≡++ ¤¤ [10 20] ↯4_3_2⇡24
⍤⤙≍ ≡≡˙⊟ [0_2 2_4] - °△ 2_1_2 °△ 2_2_2
⍤⤙≍ ≡≡˙⊟ ¯[0_2 2_4] - °△ 2_2_2 °△ 2_1_2
⍤⤙≍ [0_1 1_2] +∩°△ 2_1 1_2
⍤⤙≍ [[0_2 2_4 4_6] [2_4 4_6 6_8]] +∩°△ 2_1_2 1_3_2
⍤⤙≍ [] ↥ [] [1]
⍤⤙≍ [] ↥ [1] []
⍤⤙≍ [] + [] [1]
⍤⤙≍ [] + [1] []
# Filled pervasives
⍤⤙≍ [1_1 0_0] ⬚0↥ ↯ 2_2 0 ↯ 1_2 1
⍤⤙≍ [1_0 1_0] ⬚0↥ ↯ 2_2 0 ↯ 2_1 1
⍤⤙≍ [1 1] ⬚NaN= [1] [1 NaN]
⍤⤙≍ [3 3.5] ⬚0.5+ [1] [2 3]
⍤⤙≍ [5_5 5_6] ⬚5↥ [] [0_0 0_6]
⍤⤙≍ [5_5 5_6] ⬚5↥ [[][]] [0_0 0_6]
⍤⤙≍ [5_5 5_6] ⬚5↥ [0_0 0_6] []
⍤⤙≍ [5_5 5_6] ⬚5↥ [0_0 0_6] [[][]]
⍤⤙≍ [0 0 0] ⬚@\0= "" "abc"
⍤⤙≍ [0 0 0] ⬚@\0= "abc" ""
⍤⤙≍ [1 0 0] ⬚@\0= "abc" "a"
⍤⤙≍ [1 0 0] ⬚@\0= "a" "abc"
⍤⤙≍ @6 ⬚@0/+ [1 2 3]
⍤⤙≍ [11_12 13_14] ⬚10+ ↯1_0 0 [1_2 3_4]
⍤⤙≍ [1_12 13_14] ⬚10+ ↯1_1 0 [1_2 3_4]
⍤⤙≍ [11_12 13_14] ⬚10˜+ ↯1_0 0 [1_2 3_4]
⍤⤙≍ [1_12 13_14] ⬚10˜+ ↯1_1 0 [1_2 3_4]
⍤⤙≍ [1] ⬚0↥ [] [1]
⍤⤙≍ [1] ⬚0↥ [1] []
⍤⤙≍ [1] ⬚0+ [] [1]
⍤⤙≍ [1] ⬚0+ [1] []
⍤⤙≍ ¤¤∞ ⬚∞↧ ∩°△ 0_1 1_0
⍤⤙≍ ¤¤∞ ⬚∞↧ ∩°△ 1_0 0_1
# Un add
⍤⤙≍ {[0.5 0.75] [3 ¯6]} {°+} [3.5 ¯5.25]
⍤⤙≍ {[ℂ0.5 0 ℂ0 0] [ℂ0 1 i]} {°+} [ℂ0.5 1 i]
# Un multiply
⍤⤙≍ {[1 0 ¯1] [1.5 0 4]} {°×} [1.5 0 ¯4]
⍤⤙≍ {[0 1 1] [0 1 2]} {°×} [0 1 2]
⍤⤙≍ {[i ℂ0.6 0.8 1] [1 5 2]} {°×} [i ℂ3 4 2]
⍤⤙≍ {[1 ¯1 ¯1 ¯1 ¯1 0] "HELLO!"} {°×} "Hello!"
# Un divide
⍤⤙≍ {[1 1 1] [1 2 3]} {°÷} [1 2 3]
⍤⤙≍ {[3 10 6 1] [4 1 5 3]} {°÷} [4/3 1/10 5/6 3]
⍤⤙≍ {[0 0 NaN] [¯1 1 NaN]} {°÷} [¯∞ ∞ NaN]
# Trig
⍤⤙≍ η °∿ 1
⍤⤙≍ ℂ0 η °∿ ℂ0 1
⍤⤙≍ η +η°∿ 0
⍤⤙≍ ℂ0 η +η°∿ ℂ0 0
⍤⤙≍ η ∠ 1 0
⍤⤙≍ ℂ0 η ∠ 1 ℂ0 0
⍤⤙≍ ℂ0 η ∠ ℂ0 1 0
⍤⤙≍ ℂ0 η ∠ ℂ0 1 ℂ0 0
# Bytes integrity - ensure the boolean flag is properly set and unset
⍤⤙≍ ¯4 ¬5
⍤⤙≍ 1 ¬0
⍤⤙≍ 0 ¬1
⍤⤙≍ 0.5 ¬0.5
⍤⤙≍ [1 0 ¯1 ¯2] ¬[0 1 2 3]
⍤⤙≍ [1 0 0 1] ¬[0 1 1 0]
⍤⤙≍ [0 0 1] ¬∊ [1 2 3 4] [2 4 5]
⍤⤙≍ [1 0 1 0] ¬∊ [2 4] [1 2 3 4]
⍤⤙≍ [¯1 1 ¯1] ¬˙+ [1 0 1]
⍤⤙≍ [0 1 0] ¬⊂ 1 [0 1]
⍤⤙≍ [¯4 1 0] ¬⊂ 5 [0 1]
⍤⤙≍ [0 1] ¬⍜⊢(+1) [0 0]
⍤⤙≍ [1 0] ¬⍜⊣(+1) [0 0]
⍤⤙≍ [0 1] ¬⍜(⊡0|+1) [0 0]
⍤⤙≍ [1 0] ¬⍜(⊡1|+1) [0 0]
⍤⤙≍ [0 1] ¬⍜(⊏0|+1) [0 0]
⍤⤙≍ [1 0] ¬⍜(⊏1|+1) [0 0]
⍤⤙≍ [0 0] ¬⍜(⊏0_1|+1) [0 0]
⍤⤙≍ [0 1] ¬⍜(▽1_0|+1) [0 0]
⍤⤙≍ [] + ∩⋯ 0 1
⍤⤙≍ [1] ⬚0+ ∩⋯ 0 1
⍤⤙≍ [] ≠ ∩⋯ 0 1
⍤⤙≍ [1] ⬚0≠ ∩⋯ 0 1
# Dip
⍤⤙≍ [1 5] [⊙+ 1 2 3]
⍤⤙≍ [1 2 7] [⊙⊙+ 1 2 3 4]
⍤⤙≍ {1 {2 {3 4}}} ⊙(□₂|□₂|□₂) 1 2 3 4
# Below
⍤⤙≍ [6 1 2 3] [◡(++)] 1 2 3
⍤⤙≍ [¯1 2 1 2] [¯◡⊙∘] 1 2
⍤⤙≍ [¯5 5] [◡¯] 5
# Fork
⍤⤙≍ [8 2] [⊃+- 3 5]
⍤⤙≍ [13 3 40 1.6] [⊃⊃⊃+-×÷ 5 8]
⍤⤙≍ [8 ¯3] [⊃+¯ 3 5]
⍤⤙≍ [¯3 8] [⊃¯+ 3 5]
⍤⤙≍ [8 2 15 4] [⊃(+|-|×|+1) 3 5]
⍤⤙≍ [8 2 15 4] [⊃⊃⊃+-×(+1) 3 5]
⍤⤙≍3 ⊃+() 1 2
# Empty array types
⍤⤙≍ 0 type[]
⍤⤙≍ 1 type""
⍤⤙≍ 2 type{}
# Two sum
⍤⤙≍ [0 1] ⊚/↥=˙⊞+ [2 7 11 15] 9
# Planet notation
⍤⤙≍ 25 ×⊃(+⊙⋅⋅∘)(-⊃⋅⋅∘(×⋅⊙⋅∘)) 1 2 3 4
⍤⤙≍ 25 ×⊃(+⊙⋅⋅∘)⋅(-⊃⋅∘(×⊙⋅∘)) 1 2 3 4
# Array construction
⍤⤙≍ [1] [∘] 1
⍤⤙≍ [[1]] [[∘]] 1
⍤⤙≍ [[3]] [[+]] 1 2
⍤⤙≍ [1 1] [⟜∘] 1
⍤⤙≍ [2 1] [˜⊙∘] 1 2
⍤⤙≍ [1 2 2] [⊙⟜∘] 1 2
⍤⤙≍ [¯1 ¯2] [∩¯] 1 2
⍤⤙≍ [1_0_0 2_3_0 4_5_6] ⬚0[1 2_3 4_5_6]
⍤⤙≍ [[1 2 3 1 2 3]] ⬚0[♭↯2 1_2_3]
# Switch
⍤⤙≍ [¯1 2 ¯3 4 ¯5] ⨬(¯|∘) =0⊸◿2[1 2 3 4 5]
⍤⤙≍ [6 2 8 4 10] ⨬(⋅∘|∘) [0 1 0 1 0] [1 2 3 4 5] [6 7 8 9 10]
⍤⤙≍ [5 4 ¯1 8 ¯4] ⨬(-|+) ◡= [1 2 3 4 5] [6 2 2 4 1]
⍤⤙≍ [¯1 2 ¯3 4 ¯5] ⨬(¯|∘) =0⊸◿2[1 2 3 4 5]
⍤⤙≍ [6 2 8 4 10] ⨬(⋅∘|∘) [0 1 0 1 0] [1 2 3 4 5] [6 7 8 9 10]
⍤⤙≍ [5 4 ¯1 8 ¯4] ⨬(-|+) ◡= [1 2 3 4 5] [6 2 2 4 1]
⍤⤙≍ [81 1 57 1] ⨬(⊙◌|1) [0 1 0 1] [81 ¯1 57 ¯1] [79 14 55 13]
⍤⤙≍ [81 14 57 13] ⨬(⊙◌|◌) [0 1 0 1] [81 ¯1 57 ¯1] [79 14 55 13]
⍤⤙≍ 5 ⨬(5|0 ˙⍤0) 0
F ← ⨬(¯|+1|×10|∞)
⍤⤙≍ [¯5 6 50 ∞] F [0 1 2 3] 5
⍤⤙≍ [¯1_2_10_∞ ¯2_3_20_∞ ¯3_4_30_∞] F ↯3 0_1_2_3 [1 2 3]
⍤⤙≍ ↯3 ¯5_6_50_∞ F ↯3 0_1_2_3 5
⍤⤙≍ °△0_3 ⨬∘∘[] ¤[1 2 3]
⍤⤙≍ °△0_0 ⨬∘∘[] ¤[]
⍤⤙≍ °△0_2 ⨬⊂⊂ [0] 1 []
⍤⤙≍ °△0_2 ⨬⊂⊂ [0] [] 1
⍤⤙≍ °△0_2 ⨬⊂⊂ [] [0] 1
⍤⤙≍ °△0_2 ⨬⊂⊂ [] [0] 1
⍤⤙≍ ¤⨬∘⋅∘ [0 1] [2] [5] ⨬∘⋅∘ ¤[0 1]¤[2]¤[5]
⍤⤙≍ [[1_2 ¯3_¯4] [¯1_¯2 3_4]] ⨬¯⌵ [1_0 0_1] ¤ [1_2 3_4]
⍤⤙≍ [[1_2 ¯3_¯4] [¯1_¯2 3_4]] ⨬¯⌵ [1_0 0_1] ↯2[1_2 3_4]
⍤⤙≍ [1 0 1] ⨬⊙◌◌ [1] [0 0 0] [1 0 1]
⍤⤙≍ ⊃≡⨬∘∘⨬∘∘ °△1_2 ×10+1°△2_1
⍤⤙≍ ⊃≡⨬∘∘⨬∘∘ °△1_2 ×10+1°△2_1_2
⍤⤙≍ ⊃≡⨬∘∘⨬∘∘ °△1_1 ×10+1°△2_1_2
⍤⤙≍ ⊃≡⨬∘∘⨬∘∘ °△2_1 ×10+1°△2_1
⍤⤙≍ ⊃≡⨬∘∘⨬∘∘ °△2_1 ×10+1°△2_1_2
# Character arithmatic edge cases
⍤⤙≍ @\0 -MaxInt @B
⍤⤙≍ @\_ +MaxInt @B
⍤⤙≍ @\0 -∞ @B
⍤⤙≍ @\_ +∞ @B
# Escape sequences
⍤⤙≍ 0 -@\0 @\0
⍤⤙≍ 9 -@\0 @\t
⍤⤙≍ 10 -@\0 @\n
⍤⤙≍ 13 -@\0 @\r
⍤⤙≍ 34 -@\0 @"
⍤⤙≍ 39 -@\0 @\'
⍤⤙≍ 65 -@\0 @A
⍤⤙≍ 92 -@\0 @\\
⍤⤙≍ 97 -@\0 @a
⍤⤙≍ 27 -@\0 @\x1b
⍤⤙≍ 4096 -@\0 @\u1000
⍤⤙≍ 1 -@\0 @\u{1}
⍤⤙≍ 16 -@\0 @\u{10}
⍤⤙≍ 256 -@\0 @\u{100}
⍤⤙≍ 4096 -@\0 @\u{1000}
⍤⤙≍ 65536 -@\0 @\u{10000}
⍤⤙≍ 1048576 -@\0 @\u{100000}
# Fill boundaries
⍤⤙≍ [0 1 2 3] ⬚0/⊂ [1 2 3]
⍤⤙≍ [0 1 2 3] ⬚0(/⊂) [1 2 3]
⍤⤙≍ [0 1 2 3] ⬚0((/⊂)) [1 2 3]
F ← /⊂
⍤⤙≍ [1 2 3] ⬚0F [1 2 3]
F ← ⬚°◌/⊂
⍤⤙≍ [0 1 2 3] ⬚0F [1 2 3]
M! ← /^0
⍤⤙≍ [1 2 3] ⬚0M!⊂ [1 2 3]
M! ← ⬚°◌/^0
⍤⤙≍ [0 1 2 3] ⬚0M!⊂ [1 2 3]
M! ←^ $"/_"⊢
⍤⤙≍ [0 1 2 3] ⬚0M!⊂ [1 2 3]
M! ←^ $"⬚°◌/_"⊢
⍤⤙≍ [0 1 2 3] ⬚0M!⊂ [1 2 3]
F ← (⍣°◌0)
⍤⤙≍ 8 ⬚8F
# Proxy values/empty type checking
F ← +@A˙⊟
⍤⤙≍ ⊂⊙2_1 ⟜(⊂⊃△type≡F⇡)2
⍤⤙≍ ⊂⊙2_1 ⟜(⊂⊃△type≡F⇡)1
⍤⤙≍ ⊂⊙2_1 ⟜(⊂⊃△type≡F⇡)0
⍤⤙≍ [0 3] △ ≡⍜▽∘ ↯0_3 1 ¤"abc"
⍤⤙≍ [0 3] △≡⍜(°⊟▽)˜⊙∘ ↯0_3[1_1_0] ¤"abc"
⍤⤙≍ ⟜(⍜▽≡(°⊸⊢@0) [0 0]) ["ab" "cd"]
⍤⤙≍ [3 5] ≡◇⊢ {[3 4] [5 6]}
⍤⤙≍ [] ≡◇⊢ {}
⍤⤙≍ [7_9 8_1] [≡◇⊢₂] {[7 8] [9 1]}
⍤⤙≍ °△ 2_0 [≡◇⊢₂] {}
# Filled inverses
⍤⤙≍ 0 ⬚0°◌
⍤⤙≍ [0 1] ⬚[0 1]°◌
⍤⤙≍ [[1_2 3_0] [1_2 4_0]] ⬚0≡(⬚°◌⊟1_2) [3 4]
F ← ⍜⬚0⊏[] ⊸˜⨂0
⍤⤙≍ {3_2 0} {F} 3_2
# Multi fill
⍤⤙≍ {[0_1_0 2_0_0 3_4_5] ["ab " "c " "def"]} {⬚(0@ )⊜⊙∘} [1 1 2 3 3 3] °⊏"abcdef"
F ← ⬚(0@0□[]ℂ0 0)+
⍤⤙≍ [5 7 3] F 1_2_3 4_5
⍤⤙≍ "bd3" F 1_2_3 "ab"
⍤⤙≍ {5_6 [8] 6} F {1_2 [3]} 4_5_6
# Un chains
⍤⤙≍ [2 2] °/× 4
⍤⤙≍ 4 °°/× 4
⍤⤙≍ [2 2] °°°/× 4
⍤⤙≍ 4 °°°°/× 4
⍤⤙≍ [2 2] °°°°°/× 4
⍤⤙≍ 4 °°°°/× 4
⍤⤙≍ 3 °°+ 1 2
⍤⤙≍ 3 °°°°°°+ 1 2
# Anti anti
⍤⤙≍ 7 ⌝⌝+ 2 5
⍤⤙≍ 7 ⌝(⌝+∘) 2 5
⍤⤙≍ 7 ⌝(∘⌝+) 2 5
# Anti mixed
⍤⤙≍ ⟜(⌝(×+1) 3 ×+1 3) 5
⍤⤙≍ ⟜(⌝(+1×) 3 +1× 3) 5
⍤⤙≍ ⟜(⌝(+1×+1) 3 +1×+1 3) 5
# Primes
⍤⤙≍ °△0_1 °/× [1]
⍤⤙≍ ¤¤2 °/× [2]
# Backward
⍤⤙≍ 2_1 ˜⊟ 1 2
⍤⤙≍ [1_3 2_4] [˜∩⊟] 1 2 3 4
# Self
⍤⤙≍ [1 1 1] ˙⊟₃ 1
# On-inverses
⍤⤙≍ [3 2] [°⟜+ 3 5]
⍤⤙≍ [3 2] [°⟜× 3 6]
⍤⤙≍ [3 8] [°⟜- 3 5]
⍤⤙≍ [3 18] [°⟜÷ 3 6]
⍤⤙≍ [3 2] [°⟜(+?) 3 5]
⍤⤙≍ [3 5] [°⟜↥ ⟜↥ 3 5]
⍤⤙≍ [5 3] [°⟜↧ ⟜↧ 5 3]
⍤⤙≍ [1_2 3_4] [°⟜⊂ 1_2 1_2_3_4]
# By-inverses
Test! ← ⍤⤙≍ ⊃⊟(⁅₁₂[⊸^0°⊸^0]) 2 5
Test!+
Test!-
Test!˜-
Test!×
Test!÷
Test!˜÷
Test!ⁿ
Test!˜ⁿ
# Ana inverses
⍤⤙≍ [1 0] °/ℂ i
⍤⤙≍ ∩⁅₁₂ ↯2÷2√2 °/∠ η/2
# Anti/contra couple
⍤⤙≍ 2 ⌝⊟ 1 [1 2]
⍤⤙≍ 1 ⊙◌°⊸⊟ [1 2] 2
# Anti array
⍤⤙≍ {2 3} {⌝⊟₃ 1 [1 2 3]}
# Select inverses
⍤⤙≍ [0 1 1 2] ⊙◌°⊸⊏ [1 2 2 3] [1 2 3 2]
⍤⤙≍ [0 0 0] ⊙◌°⊸⊏ ↯3 1_2 [1_2 3_4 1_2]
⍤⤙≍ 0 ⊙◌°⊸⊏ 5 5
⍤⤙≍ [˙∩₇∘15 7] ⊙◌°⊸⊏ "fffffff7" "0123456789abcdef"
⍤⤙≍ "c-b-a" ◌⬚@-°⟜⊏ [4 2 0] "abc"
⍤⤙≍ "b-c-a" ◌⬚@-°⟜⊏ [4 0 2] "abc"
⍤⤙≍ "-abcde----f" ◌⬚@-°⟜⊏ [1_2 3_4 5_10] ["ab" "cd" "ef"]
⍤⤙≍ ["--""ab""cd""ef"] ◌⬚@-°⟜⊏ [1 2 3] ["ab" "cd" "ef"]
⍤⤙≍ [1] ◌°⟜⊏ 0_0 1_1
# Pick inverses
⍤⤙≍ [0 0 5] ◌⬚0°⟜⊡ 2 5
⍤⤙≍ [0_0_0_0 0_0_0_6 0_0_5_0] ◌⬚0°⟜⊡ [2_2 1_3] 5_6
⍤⤙≍ [⟜∘↯4_2 0[0_0 0_0 0_0 5_6]] ◌⬚0°⟜⊡ 2_3 5_6
⍤⤙≍ [0_0_0 0_0_5] ◌⬚0°⟜⊡ 1_2 5
⍤⤙≍ [4_1 2_3] ◌°⟜⊡ [0_1 1_0 1_1 0_0] 1_2_3_4
# General on inverse
F ← ×2+1
⍤⤙≍ [1 4] [°⟜(F+) ⟜(F+) 1 4]
⍤⤙≍ [1 4] [°⟜(+F) ? ⟜(+F) 1 4]
⍤⤙≍ [1 4] [°⟜(F+F) ⟜(F+F) 1 4]
# Various bindings
X ← |0 5
⍤⤙≍ 5 X
6
X ← |0
⍤⤙≍ 6 X
X ← |0.3 1 2 3
⍤⤙≍ [1 2 3] [X]
1 2 3
X ← |0
⍤⤙≍ [1] [X]
◌◌
⍤⤙≍ [1 10] X_10
G ↚ +1
F ← G
F ←
≡F
4
a ← ()
⍤⤙≍ 4
Foo⌟ ← 5
⍤⤙≍ 5 Foo⌟
5
F ← (
G ←
G 1
)
⍤⤙≍ 1 F
⍤⤙≍ 5
F ← |1 (
F ← ×2
F
)
⍤⤙≍ 10 F 5
X ← 3
F! ←^ ∘
F!(
X ← 5
Y ← 6
)
⍤⤙≍ [5 6] [X Y]
⍤⤙≍ [1 1] [
C ← 1
C C
]
5
⍤⤙≍ 5 (X ←)
r ← 6
⍤⤙≍ 6 r
ตุ๊กแก ← "🦎"
⍤⤙≍ "🦎" ตุ๊กแก
# Constant vs Noadic function
F ← ⚂
G ← (⚂)
⍤⤙≍ 1 ⧻◴ [F F F]
⍤⤙≍ 3 ⧻◴ [G G G]
F ← (⚂)
G ← F
⍤⤙≍ G G
# Euler's identity
⍤⤙≍ 0 ⍜(×1000000000000)⁅ ⌵+1 ⁿiπ e
# Format strings
⍤⤙≍ "5" $"_" 5
⍤⤙≍ "1, 2, 3" $"_, _, _" 1 2 3
⍤⤙≍ "1 + 2 = 3" $"_ + _ = _" ⊃⊙∘+ 1 2
⍤⤙≍ ["foo5" "bar5"] ⊟⊃$"foo_"$"bar_" 5
$ Multi _
$ _ line
⍤⤙≍ "Multi _\n_ line"
"foo" "bar"
$$ Multi _
$$ _ line
⍤⤙≍ "Multi foo\nbar line"
⍤⤙≍ "[[0 1 2] [3 4 5]]" $"_" °△2_3
⍤⤙≍ "{1→4 2→5 3→6}" $"_" map 1_2_3 4_5_6
⍤⤙≍ ⟜$"_" "hi"
⍤⤙≍ "[\"foo\" \"bar\"]" $"_" ["foo" "bar"]
⍤⤙≍ "[\"foo\" \"bar\"]" $"_" {"foo" "bar"}
⍤⤙≍ ⟜≡(⋕°⋕) [1 ¯5 +0.1 0.2 π ∞ NaN]
⍤⤙≍ ⟜≡(⋕$"_") [1 ¯5 +0.1 0.2 π ∞ NaN]
# Un reduce format strings
⍤⤙≍ {"a" "bcd" "ef"} °/$"_ - _" "a - bcd - ef"
⍤⤙≍ ⟜(/$"_b_" °/$"_b_") "abbc"
⍤⤙≍ ⟜(/$"_ab_" °/$"_ab_") "abab"
# Pattern matching
⍤⤙≍ 2 °[1⊙3] [1 2 3]
⍤⤙≍ [1 2 4 5] [°[⊙⊙(3⊙∘)] [1 2 3 4 5]]
⍤⤙≍ 2 °(⊂0[1⊙3]) [0 1 2 3]
⍤⤙≍ {"1" "2"} {°$"_ - _"} "1 - 2"
⍤⤙≍ {"1" " " "2"} {°$"_ -__"} "1 - 2"
⍤⤙≍ {"5"} {°$"_"} "5"
⍤⤙≍ {} {°$"wow"} "wow"
⍤⤙≍ {"1" "2\n5"} {°$"_-_" "1-2\n5"}
⍤⤙≍ 5 °¤ [5]
⍤⤙≍ [5] [°⟜(+3) 5 8]
⍤⤙≍ [1 2 3] °(↥1) [1 2 3]
⍤⤙≍ 0 ⍣°(↧ 1)0 [1 2 3]
⍤⤙≍ [1 2 3] °(↥ℂ0 0) [1 2 3]
⍤⤙≍ [1 2 3] °(↧ℂ4 4) [1 2 3]
⍤⤙≍ 2 °˙⊟ [2 2]
°(+1 2) 3
F ← {⊓$A$B} # Track caller!
°(F 1 2) F 1 2
# Wildcard
⍤⤙≍ [W 2 3] [1 2 3]
⍤⤙≍ [1 W 3] [1 2 3]
⍤⤙≍ "hello" "he\Wlo"
# Complex
⍤⤙≍ i ℂ1 0
⍤⤙≍ ℂ0 4 ◿ 5 ℂ0 ¯1
⍤⤙≍ 2i √ ℂ0¯4
⍤⤙≍ 2i ⁅₁₅ ⁿ1/2 ℂ0¯4
⍤⤙≍ 0 °(ℂ1) i
⍤⤙≍ ˙ℂ0 ⌝ℂ1 i
# Memo
F ← memo(+⌊×10⚂)
⍤⤙≍ F1 F1
⍤⤙≍ F5 F5
# Recursion
Fact ← |1 ⨬(×Fact⊸-1|1)⊸<2
⍤⤙≍ 120 Fact 5
A ← |1 ⨬(+⊃(A-1|A-2)|1)⊸<2
⍤⤙≍ 21 A 7
B ← |1 (⨬(+⊃(B-1|B-2)|1)⊸<2)
⍤⤙≍ 21 B 7
# On
⍤⤙≍ [1 1 3] [⟜⊙⋅⊙◌ 1 2 3 4]
⍤⤙≍ [1 1 2 2 4] [⟜⊙⟜⊙⋅∘ 1 2 3 4]
⍤⤙≍ [1 3] [⟜3 1]
⍤⤙≍ [12 6] [⟜(×3|+|÷2) 4]
⍤⤙≍ [1 2 3 4] [⟜₂+ 1 2 4]
⍤⤙≍ [1 2 7] [⟜₂(++) 1 2 4]
⍤⤙≍ {1 2 [1 2 3]} ⟜₂(□₃|⊟₃) 1 2 3
# By
⍤⤙≍ [0 5] [⊸0] 5
⍤⤙≍ [8 5] [⊸+] 3 5
⍤⤙≍ [6 3] [⊸(++)] 1 2 3
⍤⤙≍ [3 1 2 4] [⊸₂+ 1 2 4]
⍤⤙≍ [7 2 4] [⊸₂(++) 1 2 4]
# With
# ⍤⤙≍ [5 ¯3 5] [⤙¯ 3 5]
# ⍤⤙≍ [3 5 ¯3 5] [⟜⤙¯ 3 5]
⍤⤙≍ [5 8] [⤙+ 3 5]
⍤⤙≍ [4 1 2 3 4] [⤙⊙⊙⊙∘ 1 2 3 4]
⍤⤙≍ [4 1 2 3] [⤙⊙⊙⊙◌ 1 2 3 4]
# ⍤⤙≍ [2 1 2 3] [⤙1 2 3]
⍤⤙≍ [1 2 3 4] [⤙₂+ 1 2 4]
⍤⤙≍ [2 4 7] [⤙₂(++) 1 2 4]
# ⍤⤙≍ [1 2 3 ¯1 2 3 4 5] [⤙₃¯ 1 2 3 4 5]
# Off
# ⍤⤙≍ [3 ¯5 3] [⤚¯ 3 5]
# ⍤⤙≍ [3 ¯5 3 5] [⊸⤚¯ 3 5]
⍤⤙≍ [8 3] [⤚+ 3 5]
⍤⤙≍ [1 2 3 4 1] [⤚⊙⊙⊙∘ 1 2 3 4]
⍤⤙≍ [2 3 4 1] [⤚⋅⊙⊙∘ 1 2 3 4]
# ⍤⤙≍ [1 2 1 3] [⤚1 2 3]
⍤⤙≍ [3 1 2 4] [⤚₂+ 1 2 4]
⍤⤙≍ [7 1 2] [⤚₂(++) 1 2 4]
# ⍤⤙≍ [1 2 ¯3 1 2 3 4 5] [⤚₃¯ 1 2 3 4 5]
# Anti call
F ← ⌅(+|-) # Track Caller!
⍤⤙≍ 7 F 2 5
⍤⤙≍ 3 ⌝F 2 5
# Composition with contra inverse
F ← ⍜⊢¯ ⊏⊙"nubtqphsoe" -@0 °⋕
⍤⤙≍ ⟜(°F F) 118
# Contra flip as anti inverse
⍤⤙≍ 2 ⌝˜⊏ [10 11 12 13] 12
⍤⤙≍ {[10 11 12 13] 2} {°⟜˜⊏} [10 11 12 13] 12
⍤⤙≍ 2 °(˜⊏[1 2 3 4]) 3
# ThisFile
⍤⤙≍ $"tests_units.ua" pathsep ThisFile
⍤⤙≍ ThisFile /◇⊂ {ThisFileDir pathsep ThisFileName}
◌&fras /◇⊂ {WorkingDir pathsep ThisFile}
◌&fras /◇⊂ {WorkingDir pathsep ThisFileDir pathsep ThisFileName}
# Pointer equality
⍤⤙≍ 1 ≍ NULL NULL
⍤⤙≍ 0 ≍ NULL []
⍤⤙≍ 0 ≍ [] NULL
# Algebra
⍤⤙≍ 6.5 °(×⊸+1) 48.75
⍤⤙≍ 2 °(×⊃(+1|×2)) 12
⍤⤙≍ 5 °(++⊃(˙×|ׯ2|¯5)) 10
⍤⤙≍ 10 °(+∩˙×⊸+1) 221
⍤⤙≍ ⊃°(√?÷2)°(√÷2) 2
# Un both
⍤⤙≍ [1 2 3 4] [°∩⊟] 1_2 3_4
⍤⤙≍ {1 [2] 3 [4]} {°∩⊂} 1_2 3_4
# Un bracket
⍤⤙≍ [1 2 3 4] [°⊓⊟⊟] 1_2 3_4
⍤⤙≍ {1 2 3 [4]} {°⊓⊟⊂} 1_2 3_4
# Un with
⍤⤙≍ [3 5] [°⤙+ ⤙+] 3 5
⍤⤙≍ [3 5] [°⤙- ⤙-] 3 5
# Un off
⍤⤙≍ [3 5] [°⤚+ ⤚+] 3 5
⍤⤙≍ [3 5] [°⤚- ⤚-] 3 5
# Subscript both
⍤⤙≍ [] [∩₀+]
⍤⤙≍ [3] [∩₁+ 1 2]
⍤⤙≍ [3 7] [∩₂+ 1 2 3 4]
⍤⤙≍ [3 7 11] [∩₃+ 1 2 3 4 5 6]
⍤⤙≍ [3 7 11 15] [∩₄+ 1 2 3 4 5 6 7 8]
⍤⤙≍ 10 ∩₁₀◌ °⊟₁₁⇡11
⍤⤙≍ 20 ∩₁₀(◌◌) °⊟₂₁⇡21
⍤⤙≍ {1_3 2_3} {∩⌟⊟ 1 2 3}
⍤⤙≍ {1_2 1_3} {∩⌞⊟ 1 2 3}
⍤⤙≍ {1_2 3_4} {∩⊟ 1 2 3 4}
⍤⤙≍ {1_2 3_4 5_6} {∩₃⊟1 2 3 4 5 6}
⍤⤙≍ {1_2 1_3 1_4} {∩₃⌞⊟ 1 2 3 4}
⍤⤙≍ {1_4 2_4 3_4} {∩₃⌟⊟ 1 2 3 4}
⍤⤙≍ {1_2 1_2} {∩⌞₂⊟ 1 2}
⍤⤙≍ {1_2 1_2} {∩⌟₂⊟ 1 2}
⍤⤙≍ {1_2_3 1_2_4} {∩⌞₂⊟₃ 1 2 3 4}
⍤⤙≍ {1_3_4 2_3_4} {∩⌟₂⊟₃ 1 2 3 4}
⍤⤙≍ {1_2_3 1_2_4 1_2_5} {∩₃⌞₂⊟₃ 1 2 3 4 5}
⍤⤙≍ {1_4_5 2_4_5 3_4_5} {∩₃⌟₂⊟₃ 1 2 3 4 5}
⍤⤙≍ {1_2_3_4 1_2_5_6 1_2_7_8} {∩₃⌞₂⊟₄ 1 2 3 4 5 6 7 8}
⍤⤙≍ {1_2_7_8 3_4_7_8 5_6_7_8} {∩₃⌟₂⊟₄ 1 2 3 4 5 6 7 8}
# Spawn/pool/wait
⍤⤙≍ wait≡pool(1 ∘) 2_3 ≡(⊟1 ∘) 2_3
⍤⤙≍ [1 2 3] waitpool(1 2 3)
⍤⤙≍ ⟜(wait≡pool∘) ⇡1000
# Path
⍤⤙≍⊃(
{⊢∘path(+⊂⟜¯⋯1_2¤)≍}
| {⊢path(+⊂⟜¯⋯1_2¤)≍}
) 0_0 3_5
⍤⤙≍⊃(
⊢∘path(+⊂⟜¯⋯1_2¤|≍|⌵/ℂ-)
| ⊢path(+⊂⟜¯⋯1_2¤|≍|⌵/ℂ-)
) 0_0 3_5
⍤⤙≍ 201 ⧻⊢path(+⋯1_2¤|≍100_100) 0_0
⍤⤙≍ 1 ¬≍0⬚0⊢path(+⇡10|=10000) 0
⍤⤙≍ [0 0] △ path⋅[]0 0
⍤⤙≍ [0 0 3] △ path⋅[]0 1_2_3
⍤⤙≍ {{} ∞} {path(°⊏⋅[])0} 1_2_3
⍤⤙≍ [0 3] △ ↙0 path(++1⇡10|=15) 0
⍤⤙≍ [1 3] △ ↙1 path(++1⇡10|=15) 0
⍤⤙≍ [2 3] △ ↙2 path(++1⇡10|=15) 0
⍤⤙≍ 1 ±⧻path(+A₁|=10) 0
⍤⤙≍ 1_55 ⊟ ±⧻path(⊸⌵ +A₁|=10) 0
⍤⤙≍ 1 ±⧻path(+A₁|=10|⌵-10) 0
⍤⤙≍ 1_55 ⊟ ±⧻path(⊸⌵ +A₁|=10|⌵-10) 0
⍤⤙≍ 0_∞ ⊟ ±⧻path(⊸⌵ ▽⊸(≤7⌵)+A₁|=10) 0
⍤⤙≍ 0 ±⧻path(▽⊸(≤7⌵)+A₁|=10) 0
⍤⤙≍ 0_∞ ⊟ ±⧻path(⊸⌵ ▽⊸(≤7⌵)+A₁|=10|⌵-10) 0
⍤⤙≍ 0 ±⧻path(▽⊸(≤7⌵)+A₁|=10|⌵-10) 0
⍤⤙≍ [] ⬚∞⊢path(▽⊸≥0¤-2|=0) 3
⍤⤙≍ {{} ∞} □₂ ⬚∞⊢path(≡⊸1 ▽⊸≥0¤-2|=0) 3
$ ########
$ ##...###
$ ##.#..E#
$ #S.##.##
$ ##.##.##
$ ##....##
$ ########
Dirs ← [◡∩¯ ⟜⇌ 0_1]
⊃(⊟0_0 ⊢⊚=@S|⊢⊚=@E|⊚≠@#) ⊜∘⊸≠@\n
path(
˜∩⊂ ⊃(≡⊸1000≡⊟⊙¤Dirs⊣|≡⊸1 ▽⊃(˜∊⊣)¤\+) ⊙⋅∘
| ≍⊣
| ⌵/ℂ-⊣)
⍤⤙≍ [1 5008] ⊟⧻
# Grid format empty arrays
◌pretty °△0_0_0
◌pretty °△0_0_0_0
# Experimental!
# Derivative
⍤⤙≍ 10 ∂˙× 5
⍤⤙≍ 1.5 ∂√ 1/9
⍤⤙≍ [¯2 0 2] ∂(++⊃(ⁿ2|ׯ2|¯4)) [0 1 2]
⍤⤙≍ ⊚10 ∂⋅6 ⇡10
⍤⤙≍ ◌⊃°∠∂∿ ×τ ÷⟜⇡ 16
⍤⤙≍ ↯10 0.2 ∂(÷5) ⇡10
⍤⤙≍ ¯0.04 ∂⨪ 5
⍤⤙≍ 2 ∂(+⟜∿) 0
# Integral
⍤⤙≍ 9 ∫˙× 3
⍤⤙≍ [2/3 16/3] ∫√ [1 4]
⍤⤙≍ 14 ∫(+5×2) 2
⍤⤙≍ 24 ∫(+1) 6
⍤⤙≍ ×6⇡10 ∫⋅6 ⇡10
⍤⤙≍ ¯◌⊃°∠∫∿ ×τ ÷⟜⇡ 16
⍤⤙≍ 1 ∫⨪ e
⍤⤙≍ ⟜∫∂∘ ⇡10
# Sided self
⍤⤙≍ [1 2 2] ˙⌟⊟₃ 1 2
⍤⤙≍ [1 1 2] ˙⌞⊟₃ 1 2
⍤⤙≍ [1 2 3 3] ˙⌟⊟₄ 1 2 3
⍤⤙≍ [1 1 2 3] ˙⌞⊟₄ 1 2 3
⍤⤙≍ [1 1 1 2] ˙⌞₃⊟₄ 1 2
⍤⤙≍ [1 2 2 2] ˙⌟₃⊟₄ 1 2
⍤⤙≍ [2 3] ˙⌞₀⊟ 1 2 3
⍤⤙≍ [1 2] ˙⌟₀⊟ 1 2 3
# Sided backward
⍤⤙≍ [1 3 2] ˜⌟⊟₃ 1 2 3
⍤⤙≍ [2 1 3] ˜⌞⊟₃ 1 2 3
# Sided fill
⍤⤙≍ [1_2_3 0_4_5 0_0_6] ⬚⌞0[1_2_3 4_5 6]
⍤⤙≍ [1 2 53 64] ⬚⌞0+[1 2 3 4] [50 60]
⍤⤙≍ [1 2 50 60] ⬚⌞0↥ [1 2 3 4] [50 60]
⍤⤙≍ [
" 1.1"
" 20 "
" 300 "
"4000.5"
] ⬚@ °⋕ [1.1 20 300 4000.5]
⍤⤙≍ [
"1.1 "
"20 "
"300 "
"4000.5"
] ⬚⌟@ °⋕ [1.1 20 300 4000.5]
⍤⤙≍ [1 3 5 3] ⬚0⧈+ [1 2 3]
⍤⤙≍ [1 3 5] ⬚⌞0⧈+ [1 2 3]
⍤⤙≍ [3 5 3] ⬚⌟0⧈+ [1 2 3]
⍤⤙≍ [1 3 5 3] ⬚0⧈/+ 2 [1 2 3]
⍤⤙≍ [1 3 5] ⬚⌞0⧈/+ 2 [1 2 3]
⍤⤙≍ [3 5 3] ⬚⌟0⧈/+ 2 [1 2 3]
# Lexical correctness
⍤⤙≍ [⊃(1|2)] [⊃↓(1|2)]
[⊃↓(1
| 2)]
[(1
2)]
⍤⤙≍
↓[1 2
3 4]
[(1 2
3 4)]
⍤⤙≍
# Evert
⍤⤙≍ [11_22 13_24] ⧋+ 10_20 [1_2 3_4]
[[1_2 3_4 5_6] [7_8 9_10 11_12] [13_14 15_16 17_18]]
⧋+ [100_200 300_400 500_600]
⍤⤙≍ [[101_202 303_404 505_606] [107_208 309_410 511_612] [113_214 315_416 517_618]]
⍤⤙≍ [9_8_7 19_18_17] °(⧋+ 1_2_3) [10_10_10 20_20_20]
⍤⤙≍ [9_8_7 19_18_17] ⌝⧋+ 1_2_3 [10_10_10 20_20_20]
# Recur
⍤⤙≍ 120 recur(<2|-1|×) 5
⍤⤙≍ 5040 recur(<2|-1|×) 7
⍤⤙≍ 55 recur(<2|⊃[-1|-2]|/+) 10
⍤⤙≍ 89 recur(▽⊙1<2|⊃[-1|-2]|/+) 10
⍤⤙≍ 1 recur<₂-₁∘ 5
⍤⤙≍ 1 recur<₂-₁() 5
⍤⤙≍ [] recur(≠0⧻|∘|∘) []
# Reach
⍤⤙≍ 4 ∪+ 1 2 3
⍤⤙≍ 5 ∪∪+ 1 2 3 4
⍤⤙≍ "bcad" ⊂∪⌞⊟⊟ @a@b@c@d
⍤⤙≍ "adbc" ⊂∪⌟⊟⊟ @a@b@c@d
⍤⤙≍ "bcdae" ⊂∪⌞⊟₃⊟ @a@b@c@d@e
⍤⤙≍ "adebc" ⊂∪⌟⊟₃⊟ @a@b@c@d@e
⍤⤙≍ "bcade" ⊂∪⌞⊟⊟₃ @a@b@c@d@e
⍤⤙≍ "aebcd" ⊂∪⌟⊟⊟₃ @a@b@c@d@e
⍤⤙≍ {3_4 1_2_5} ∪₂⌞{⊟|⊟₃} 1 2 3 4 5
~ "data_defs" ~ M
⍤⤙≍ 21 M~X