uCBQN/test/cases/prims.bqn

577 lines
44 KiB
BQN
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

%DEF var V•internal.Variation LV•internal.ListVariations CLR•internal.ClearRefs
%DEF tvar %USE var _tvar {F _𝕣 x: (CLR@) {F 𝕩 V x}¨ LV 𝕩; w F _𝕣 x: (CLR@) (LV 𝕨) {(𝕨 V w) F 𝕩 V x} LV 𝕩}
%DEF eqvar %USE tvar _eqvar {r 𝕨 𝔽 _tvar 𝕩 "failed eqvar"!•internal.EEqual(r)¨ r r}
%DEF evar %USE tvar _evar {ok{} r𝕨 ok𝔽{𝕊: •CurrentError@} _tvar 𝕩 {okr? !"TEST FAIL: variation didn't error"; ("TEST FAIL: varying error messages" ! 1=)r (r)!0}}
%DEF eqerr %USE eqvar _eqerr {ok{} r𝕨 ok𝔽{𝕊: •CurrentError@} 𝕩 {okr? !"TEST FAIL: case didn't error"; ("TEST FAIL: varying error messages" ! 1=)r (r)!0}}
%DEF k _k {𝔽•internal.Keep}
# batch checks
{>013'a'{} (𝕏`)'e' 100, 1010, 101e4, 101e9, 101e20, "AAA", "⍉⍉⍉", "𝕨𝕨𝕨"}¨ +< %% 581010101010'e''e''e'1010101010'e''e''e'1010101010'e''e''e''e''e''e''e''e''e''e''e''e''e''e''e''e''e''e''e',581010101010'e''e''e'1010101010'e''e''e'1010101010'e''e''e''e''e''e''e''e''e''e''e''e''e''e''e''e''e''e''e',581010101010'e''e''e'1010101010'e''e''e'1010101010'e''e''e'101010'e''e''e''e''e''e''e''e''e''e''e''e''e',5810101010103331010101010333101010101033310101010103331010101010333,581010101010333101010101033310101010103331010101010333'e''e''e''e''e''e''e''e'
# total array comparison
%USE k a 0@'a'¯∞1¯1{𝕩0, 𝕩1, {1((¯1¨𝕩))𝕩}(0×´) 𝕩0}¨ {(<)´𝕩<3}¨4 r((-))_k˜ a ! r •Cmp˜a r %% '1'-˜7373"1000202002000002222000002000000222222222222200000200000022220000002000000210222222222222222222222222222222222222222222222222222222222222222222222222122222222222222222222222222222222222222222222222222222222222222222222222001222222222222222222222222222222222222222222222222222222222222222222222000010000200000222200000200000022222222222220000020000002222000000200000020002122022020222222020222022022222222222222202022202202222220220222022020000201002000002222000002000000222222222222200000200000022220000002000000200020210200000222200000200000022222222222220000020000002222000000200000020002222122020222222020222022022222222222222202022202202222220220222022020000000001000000000000000000000000000000000000000000000000000000000000000200020220210000222200000200000022222222222220000020000002222000000200000020002222222120222222020222022022222222222222202022202202222220220222022022000202202201002222200002202000222222222222220000220200022222020002202000200022222222212222222202222220222222222222222220222222022222222202222220220002022022020122222020022022022222222222222202002202202222220220222022020000000002000001000000000000000000000000000000000000000000000000000000000000000000200000210200000200000020020020020020000020000002002000000200000000000000020000022120000020000002202202202202000002000000220200000020000000000000002000002001000000000000200000000200000000000000020000000000000000200020220220000222210000200000022222222222220000020000002222000000200000020002222222220222222120222022022222222222222202022202202222220220222022022000202202202002222201002202000222222222222220000220200022222020002202000200022222222222222222212222220222222222222222220222222022222222202222220220002022022020222222020122022022222222222222202002202202222220220222022020000000002000002002000001000000200200000200200000000000020020000000000000200020220220000222220000210000022222222222222000020000002222202000200000020002222222220222222220222122022222222222222222022202202222222220222022022000202202200002222200002201000222222222222220000220000022222020002202000200020220220200222220200220210022222222222222020022020002222202202220200020002222222222222222222222222122222222222222222222222202222222222222222022000202202202002222202002202201222222222222220200220220022222022022202202000000000200000200000000000000010000000000000000000000000000000000000000000000000020000022020000020000002102002002002000002000000200200000020000000000000002000002222000002000000221220220220200000200000022020000002000000000000000200000200200000000000020010000020000000000000002000000000000000000000000020000022020000020000002202102002202000002000000220200000020000000000000002000002222000002000000222221220222200000200000022220000002000000000000000200000200200000200000020020010020020000000000002002000000000000000000000020000022020000020000002202202102202000002000000220200000020000000000000002000002222000002000000222222221222200000200000022220000002000000000000000200000200000000000000020000000010000000000000000000000000000000000000000020000022020000020000002202002002102000002000000200200000020000000000000002000002222000002000000222220220221200000200000022020000002000000000000000200000200200000000000020020000020010000000000002000000000000000020002022022000022222000020000002222222222222100002000000222200000020000002000222222222022222222022202202222222222222221202220220222222022022202202200020220220200222220200220200022222222222222010022020002222202000220200020002222222222222222222222222022222222222222222122222202222222220222222022000202202202022222202022202202222222222222220201220220222222022022202202000000000200000200200000200000020020020020020000010000002002000000000000020002022022000022222000022000002222222222222200002100000222220200020000002000222222222022222222022222202222222222222222202221220222222222022202202200020220220000222220000220200022222222222222000022010002222202000220200020002022022020022222020022022002222222222222202002202100222220220222020002000222222222222222222222222222222222222222222222222221222222222222222202200020220220200222220200220220222222222222222020022022012222202202220220200000000020000020000000000000002000000002000000000000000100000000000000000000000002000002202000002000000220200200220200000200000021020000002000000000000000200000222200000200000022222022022220000020000002212000000200000000000000020000020020000000000002002000002002000000000000200100000000000002000202202200002222200002000000222222222222220000200000022221000002000000200022222222202222222202220220222222222222222220222022022222212202220220220002022022000022222000020000002222222222222200002000000222220100020000002000202202202002222202002202000222222222222220200220200022222021002202000200022222222222222222222222220222222222222222222222222022222222212222220220002022022020022222020022020002222222222222202002202000222220220122020000000000002000002002000002000000200200200200200000200000020020000001000000200020220220000222220000220000022222222222222000022000002222202000210000020002222222220222222220222222022222222222222222022222202222222220222122022000202202200002222200002200000222222222222220000220000022222020002201000200020220220200222220200220220022222222222222020022022002222202202220210020002222222222222222222222222222222222222222222222222222222222222222222122000202202202002222202002202200222222222222220200220220022222022022202201"
!"∧𝕩: 𝕩 cannot have rank 0" % @
!"𝕩: 𝕩 cannot have rank 0" % @
(=)˜{} %% 11
()˜{} %% 00
{}(=){} %% 00
{}(){} %% 11
{2+}=2+, 2-, 3+ %% 100
{-+}=-+, ++, -- %% 100
{+¨}=+¨, -¨, + %% 100
{+-}=+-, ++, --, +- %% 1000
{•Type}=•Type,•BQN"•Type" %% 11
{•FChars}=•FChars,•BQN"•FChars" %% 10
=˜ +, , , {𝕩}, {𝔽𝕩}, {𝔽𝔾}, •internal.PureKeep, •internal.Keep, •Type, •FChars, •_timed, •_while_, 2+, +-, {} %% 15151150
˜ (0÷0)+, (0÷0)+ %% [11, 11]
=˜ (0÷0)+, (0÷0)+ %% [11, 11]
(0÷0)+, 2, 2, 3, (0÷0)+ %% 3
(0÷0)+, 2, 2, 3, (0÷0)+ %% 01120
(0÷0)+, 2, 2, 3, (0÷0)+ %% 00101
# comparison
w111 x121 {! ("𝕨",•Repr𝕩,"𝕩: Expected equal shape prefix (1‿1 ≡ ≢𝕨, 1‿2 ≡ ≢𝕩)") w 𝕏(•CurrentError@) x}¨ =<>
w111 x121 wx <¨ {! ("𝕨",•Repr𝕩,"𝕩: Expected equal shape prefix (1‿1 ≡ ≢𝕨, 1‿2 ≡ ≢𝕩)") w 𝕏(•CurrentError@) x}¨ =<>
w111 x21 {! ("𝕨",•Repr𝕩,"𝕩: Expected equal shape prefix (1‿1 ≡ ≢𝕨, ⟨2⟩ ≡ ≢𝕩)") w 𝕏(•CurrentError@) x}¨ =<>
w111 x21 wx <¨ {! ("𝕨",•Repr𝕩,"𝕩: Expected equal shape prefix (1‿1 ≡ ≢𝕨, ⟨2⟩ ≡ ≢𝕩)") w 𝕏(•CurrentError@) x}¨ =<>
!"Invalid comparison" % <˜{}
!"Invalid comparison" % ˜{}
!"Invalid comparison" % >˜{}
!"Invalid comparison" % ˜{}
{! 5 (𝕏 𝕏) 10}¨ =<>
{! (10) (𝕏 𝕏) 5}¨ =<>
{! (10) (𝕏 𝕏) 410}¨ =<>
# !𝕩 & 𝕨!𝕩
!"Assertion error" % !0
!"Assertion error" % !0
!"foo" % !"foo"
!"foo" % "foo"!0
!"foo" % "foo"!"bar"
!•CurrentError 1+ %% 1,+
!0•CurrentError 1+ %% 1,+
!1 %% 1
"foo"!1 %% 1
# |𝕩
{| (10)𝕩}¨ -271531 %% 0123456789128,012345678932768,01234567892147483648
# arith
(<1)+ 1 %% <2
1 +<1 %% <2
(<1)+<1 %% <2
@-@ %% 0
!"𝕨-𝕩: Invalid character" % @-1
{r•Repr𝕩 (!´) ("𝕨"r"𝕩: Unexpected argument types") @ 0𝕏{𝕊: •CurrentError@} @}¨ +, ×, ÷, , , , , |, , , ÷
{r•Repr𝕩 (!´) ("𝕨"r"𝕩: Unexpected argument types") 0 0𝕏{𝕊: •CurrentError@} @}¨ -, ×, ÷, , , , , |, , , ÷
{r•Repr𝕩 (!´) ("𝕨"r"𝕩: Unexpected argument types") @ 0𝕏{𝕊: •CurrentError@} 0}¨ ×, ÷, , , , , |, , , ÷
%USE var a4@ (LV a) {r•Repr𝕩 (!´) ("𝕨"r"𝕩: Unexpected argument types") @ 0𝕏{𝕊: •CurrentError@} 𝕨 V a} +, ×, ÷, , , , , |, , , ÷
%USE var a4@ (LV a) {r•Repr𝕩 (!´) ("𝕨"r"𝕩: Unexpected argument types") 0 0𝕏{𝕊: •CurrentError@} 𝕨 V a} -, ×, ÷, , , , , |, , , ÷
%USE var a40 (LV a) {r•Repr𝕩 (!´) ("𝕨"r"𝕩: Unexpected argument types") @ 0𝕏{𝕊: •CurrentError@} 𝕨 V a} ×, ÷, , , , , |, , , ÷
%USE var a4@ (LV a) {r•Repr𝕩 (!´) ("𝕨"r"𝕩: Unexpected argument types") (𝕨 V a) 0𝕏{𝕊: •CurrentError@} @} +, ×, ÷, , , , , |, , , ÷
%USE var a40 (LV a) {r•Repr𝕩 (!´) ("𝕨"r"𝕩: Unexpected argument types") (𝕨 V a) 0𝕏{𝕊: •CurrentError@} @} -, ×, ÷, , , , , |, , , ÷
%USE var a4@ (LV a) {r•Repr𝕩 (!´) ("𝕨"r"𝕩: Unexpected argument types") (𝕨 V a) 0𝕏{𝕊: •CurrentError@} 0} ×, ÷, , , , , |, , , ÷
%USE var a4@ b4@ {r•Repr f𝕩 {(!´) ("𝕨"r"𝕩: Unexpected argument types") (𝕨 V a) 0F{𝕊: •CurrentError@} 𝕩 V b}LV´ ab} +, ×, ÷, , , , , |, , , ÷
%USE var a40 b4@ {r•Repr f𝕩 {(!´) ("𝕨"r"𝕩: Unexpected argument types") (𝕨 V a) 0F{𝕊: •CurrentError@} 𝕩 V b}LV´ ab} -, ×, ÷, , , , , |, , , ÷
%USE var a4@ b40 {r•Repr f𝕩 {(!´) ("𝕨"r"𝕩: Unexpected argument types") (𝕨 V a) 0F{𝕊: •CurrentError@} 𝕩 V b}LV´ ab} ×, ÷, , , , , |, , , ÷
!"𝕨-𝕩: Unexpected argument types" % 0-@
!"𝕨÷𝕩: Unexpected argument types" % 0÷@
!"+𝕩: Argument must consist of numbers" % +@
@, "abc", 1,2,+, {} {(!´) ("𝕩: 𝕩 contained non-number"˜•Repr 𝕩) 0𝕏{𝕊: •CurrentError@} 𝕨} -×÷|¬
!"This function can't be called monadically" % @
!"This function can't be called monadically" % @
# 𝕨/𝕩
2301/4312 %% ¨6301201234534534591011
2301/4 %% 6001113
2301/4 %% ¨6001113
""/3 %% 3
!"𝕨/𝕩: Length of compound 𝕨 must be at most rank of 𝕩" % "abc"/3
!"𝕨/𝕩: Length of compound 𝕨 must be at most rank of 𝕩" % 1'a'/2
!"𝕨/𝕩: 𝕨 must consist of natural numbers" % "ab"/229
!"Expected non-negative integer, got ¯3" % 2¯3/2
!"Expected non-negative integer, got ¯3e20" % 2¯3e20/2
!"𝕨/𝕩: Lengths of components of 𝕨 must match 𝕩 (3 ≠ 4)" % 123/4567
!"Expected non-negative integer, got ¯1000" % (4/1000¯1000) / 81
!"Expected non-negative integer, got ¯1000" % (4/1000¯1000) / 81
!"Integer out of range: 4e19" % %USE evar 24e19 /_evar 2
!"𝕨/𝕩: Length of compound 𝕨 must be at most rank of 𝕩" % 1/3
!"𝕨/𝕩: Length of compound 𝕨 must be at most rank of 𝕩" % 1/<"ab"
!"𝕨/𝕩: Length of compound 𝕨 must be at most rank of 𝕩" % (<1)/<"ab"
!"𝕨/𝕩: Length of compound 𝕨 must be at most rank of 𝕩" % (<0)/<"ab"
!"𝕨/𝕩: Length of compound 𝕨 must be at most rank of 𝕩" % 10,10 / 1010
!"𝕨/𝕩: Length of compound 𝕨 must be at most rank of 𝕩" % 10,10,<0 / 101010
!"𝕨/𝕩: Simple 𝕨 must have rank 0 or 1 (2≡=𝕨)" % (214) / 4416
!"𝕨/𝕩: Compound 𝕨 must have rank at most 1" % (21<4) / 4416
!"𝕨/𝕩: Simple 𝕨 must have rank 0 or 1 (2≡=𝕨)" % (124) / 4
!"𝕨/𝕩: Compound 𝕨 must have rank at most 1" % (12<4) / 4
!"𝕨/𝕩: 𝕨 must consist of natural numbers" % 4, 123.54 / 4416
!"𝕨/𝕩: 𝕨 must consist of natural numbers" % 4, 3.5 / 4416
!"𝕨/𝕩: 𝕨 must consist of natural numbers" % (<@)/3
!"𝕨/𝕩: 𝕨 must consist of natural numbers" % (<{+})/3
!"𝕨/𝕩: 𝕨 cannot be negative" % (<¯2)/3
!"𝕨/𝕩: Lengths of components of 𝕨 must match 𝕩 (1 ≠ 3)" % ¯2/3
!"Expected non-negative integer, got ¯2" % ¯2/1
!"Integer out of range: 4.611686018427388e18" % 1,262 / 22<0 %USZ32
!"Integer out of range: 4.611686018427388e18" % 1,262 / 2<0 %USZ32
!"Out of memory" % 1,262 / 22<0 %USZ64
!"Out of memory" % 1,262 / 2<0 %USZ64
!"Out of memory" % (1e13×1000) / 1000
!"Out of memory" % (16 ¯1e9 + 260) / 16
!"Out of memory" % (4260)/4,281
4, 0, 5 / 445@ %% 6010@
4, 40, 5 / 445@ %% 6010@
102 / ¨ ["ab","cd","ef"] %% ¨ ["ab","ef","ef"]
(<102) / ¨ ["ab","cd","ef"] %% ¨ ["ab","ef","ef"]
(102) / ¨ ["ab","cd","ef"] %% ¨ ["ab","ef","ef"]
100/3020 %% 1020
100/302'a' %% 102' '
100/302<"a" %% 102<" "
(1000010)/10000020 %% 5000020
# /𝕩
!"Expected non-negative integer, got ¯1000" % / 4/1000¯1000
!"/𝕩: 𝕩 must have rank 1 (3‿3 ≡ ≢𝕩)" % /33
!"/𝕩: 𝕩 must have rank 1 (⟨⟩ ≡ ≢𝕩)" % /0
!"Expected non-negative integer, got ¯1" % %USE evar /_evar ¯1(100) 20010
!"Sum too big" % %USE evar /_evar 1e2262
!"Integer out of range: 1e20" % %USE evar /_evar 1e20(100) 20010
! (//)81525329010115516558459489491213121328135013671391140714691486155915661576158215921599160916161626163540864093411441224141414941694177
/1e412 %% 050005000
!"Expected integer, got character" % / "hello"
!"/⁼𝕩: 𝕩 cannot contain negative numbers" % %USE evar /_evar (10) ¯2 20+10
!"/⁼𝕩: 𝕩 must consist of natural numbers" % %USE evar /_evar (10) 2.2 20+10
!"/⁼𝕩: 𝕩 must consist of natural numbers" % %USE evar /_evar (10) 1e20 20+10
# 𝕨⊏𝕩
(
vals 0, 1, 2, 127, 128, 32767, 32768, ¯32767, ¯32768, ¯32769, ¯1+231, 231, @, @+1, @+255, @+256, @+1114111, {}, 12
e1 ˜ 0011223223348888888
e2 (8-(=˜<5)×8-˜) 0011223223345556788
a 1002
Variation, ListVariations, ElType •internal
{ 𝕊 v:
! e1 ElType¨ {(v Variation a) 𝕨𝕩}˜ vals
! e2 ElType¨ {(v Variation a) 𝕨𝕩}˜ vals
}¨ "i"ListVariations a
)
000 1310 %% 33012
¨ (203451)98070 08070 (23041)10 %% 20345807,0807,2304
!"𝕨⊏𝕩: Indexing out-of-bounds (1∊𝕨, 1≡≠𝕩)" % ˜(2001)1
!"𝕨⊏𝕩: Indexing out-of-bounds (24∊𝕨, 4≡≠𝕩)" % %USE evar 124 _evar 44
!"𝕨⊏𝕩: Indexing out-of-bounds (¯24∊𝕨, 4≡≠𝕩)" % %USE evar 1¯24 _evar 44
!"𝕨⊏𝕩: 𝕨 must be an array of numbers or list of such arrays" % %USE evar (1¯26@) _evar @5
!"𝕨⊏𝕩: Indexing out-of-bounds (¯26∊𝕨, 5≡≠𝕩)" % %USE evar ¯26_evar 5
!"Expected integer, got ¯26.5" % %USE evar ¯26.5_evar 5
!"𝕨⊏𝕩: Indexing out-of-bounds (¯26∊𝕨, 5≡≠𝕩)" % %USE evar 1¯26 _evar 5
!"𝕨⊏𝕩: Indexing out-of-bounds (26∊𝕨, 5≡≠𝕩)" % %USE evar 126 _evar 5
!"Expected integer, got 1.1" % %USE evar 01.12 _evar 10
!"𝕨⊏𝕩: Indexing out-of-bounds (1∊𝕨, 1≡≠𝕩)" % %USE evar 001 _evar 1310000
!"𝕨⊏𝕩: Indexing out-of-bounds (2∊𝕨, 2≡≠𝕩)" % %USE evar (1+9=10) _evar 12,3
!"𝕨⊏𝕩: Indexing out-of-bounds (4∊𝕨, 3≡≠𝕩)" % %USE evar 14201056 _evar 101
!"𝕨⊏𝕩: Indexing out-of-bounds (¯4∊𝕨, 3≡≠𝕩)" % %USE evar (-14201056) _evar 101
!"𝕨⊏𝕩: Indexing out-of-bounds (4000∊𝕨, 1001≡≠𝕩)" % %USE evar ( 1000×14201056) _evar 1001101
!"𝕨⊏𝕩: Indexing out-of-bounds (¯4000∊𝕨, 1001≡≠𝕩)" % %USE evar (¯1000×14201056) _evar 1001101
!"𝕨⊏𝕩: Indexing out-of-bounds (3∊𝕨, 2≡≠𝕩)" % %USE evar (4) _evar "ab"
!"Expected integer, got namespace" % %USE eqerr {}, <{} _eqerr 10, 1010100
!"𝕨⊏𝕩: 𝕨 must be an array of numbers or list of such arrays" % %USE eqerr evar {%USE evar evar} {}, <<<4, 4, 1.5{} _evar _eqerr 10, 1010100
!"𝕨⊏𝕩: Compound 𝕨 must have rank at most 1" % %USE eqerr 5 _eqerr 10, 1010100
!"Expected integer, got namespace" % %USE eqerr {}, {} _eqerr 10, 1010100
%USE eqvar (4) _eqvar 10×10 %% 3020100
%USE eqvar (40) _eqvar 403020 %% 440
%USE eqvar 100 _eqvar "ab"(01) 2 %% "baa"
%USE eqvar (4) _eqvar "abcdefgh" %% "dcba"
(<3) "hello" %% "hel"
(<<4) "hello" %% <'o'
!"𝕨⊏𝕩: Indexing out-of-bounds (1∊𝕨, 1≡≠𝕩)" % %USE eqerr evar {%USE evar evar} _evar´ _eqerr 01, 0 01, "?" 01, 01
a2 ! "e" (10){baaaaaaaaaa 𝕨"e"𝕩}12,34 ! 01 a
%USE eqvar {1¯1 {r𝕨𝕩 ! 𝕩 •internal.ElType r r}_eqvar 𝕩}¨ 2, 4, "hello", "ab", "cd", "ef", 4
!"𝕨⊏𝕩: 𝕩 cannot be a unit" % %USE eqerr 0, _eqerr <"a", <5, <{}
!"𝕨⊏𝕩: 𝕩 cannot be an atom" % %USE eqerr 0, _eqerr 5, {}
!"Expected integer, got 1.5" % 1.5 "ab""cd"
!"𝕨⊏𝕩: Indexing out-of-bounds (10∊𝕨, 2≡≠𝕩)" % 10 "ab""cd"
{𝕩 ! 20𝕩•rand.Range 2}¨ (70)(64×12345)+¯1013060
# 𝕨⊑𝕩
!"𝕨⊑𝕩: 𝕨 contained a non-integer" % 0.13
!"𝕨⊑𝕩: 𝕨 contained a non-integer" % 2803
!"𝕨⊑𝕩: Leaf arrays in 𝕨 must have rank 1 (element: (1‿2⥊1‿2))" % %USE evar (12) {𝕨𝕩}_evar 55
!"𝕨⊑𝕩: Leaf arrays in 𝕨 must have rank 1 (element: (<2))" % (<2)3
!"𝕨⊑𝕩: Leaf arrays in 𝕨 must have rank 1 (element: (<1))" % (<1)"foo""bar""baz"
%USE eqvar 12 _eqvar 55 %% 12
# >𝕩
!">𝕩: Result rank too large (200 ≡ =𝕩, 205 ≡ =⊑𝕩)" % > (2001)<(2051)1
!">𝕩: Incompatible element shapes (encountered shapes ⟨2⟩ and 4‿5)" % > ¨2, 45
!">𝕩: Incompatible element shapes (encountered shapes 2‿3 and ⟨4⟩)" % > ¨23, 4
!">𝕩: Incompatible element shapes (encountered shapes 2‿3 and 4‿5)" % > ¨23, 45
!">𝕩: Incompatible element shapes (encountered shapes 2‿0 and 4‿5)" % > ¨20, 45
!">𝕩: Incompatible element shapes (encountered shapes ⟨0⟩ and 4‿5)" % > ¨0, 45
!">𝕩: Incompatible element shapes (encountered shapes ⟨0⟩ and ⟨⟩)" % > ¨0,
!">𝕩: Incompatible element shapes (encountered shapes 2‿3 and ⟨⟩)" % > ¨23,
!">𝕩: Incompatible element shapes (encountered shapes 4‿5 and 4‿6)" % >234520,461
!"∾𝕩: Item trailing shapes must be equal (contained arrays with shapes ⟨2⟩ and ⟨3⟩ and later higher-rank array)" % 11, 111, 1, 221
!"∾𝕩: Item trailing shapes must be equal (contained arrays with shapes 1‿4 and ⟨0⟩)" % 14"abcd",
><'a',1 %% 'a'1
>1,2,<3,4,<<5 %% 1,2,3,4,<5
>01<23<"ab" %% 4
{a3 !'e'>'e' a, a, 2, a, a ! 1•internal.Refc a}
{a3 > a, a, 3, a, a ! 1•internal.Refc a}
{a(2001)3 ! 'e'>'e' (2001)a, a, 2, a, a ! 1•internal.Refc a}
%USE var a236 b23"abcdef" !¨ (LV a) {>1211𝕨𝕩V¨ab} LV b
%USE var ab23<<˘"abcd" !¨ (LV a) {>1211𝕨𝕩V¨ab} LV b
%USE var {ab: ! ´(¨) (LV a) {>1211𝕨𝕩V¨ab} LV b}¨ 2<23<<˘"abcd" 236,23"abcdef"
%USE var {ab: ! ´(¨) (LV a) {𝕨𝕩V¨ab} LV b}¨ 2<23<<˘"abcd" 236,23"abcdef"
# <𝕩
! <¨ - (¯2+5)+240
! <¨ @+¯101+220
! < {}
# ⋈𝕩
! ¨ - (¯2+5)+240
! ¨ @+¯101+220
! {}
# ∾𝕩
"ab", 12, "de" %% 'a','b',12,'d','e'
!"∾𝕩: Item trailing shapes must be equal (contained arrays with shapes 3‿3 and 3‿4)" % 33,34
!"∾𝕩: Item trailing shapes must be equal (contained arrays with shapes ⟨2⟩ and 3‿3)" % 12,33
!"∾𝕩: Item ranks along an axis can differ by at most one (contained ranks 1 and 3 along axis 0)" % 21 0¨ 023, 0
!"∾𝕩: Incompatible item shapes (contained arrays with shapes 1‿0 and 1‿0 along axis 1)" % {1𝕩0}¨ [01, 00]
!"∾𝕩: Incompatible item ranks" % 0¨ [0101, 011]
33<1030 %% 3030
33<00 %% 00
133<103<"hi" %% " "
!"∾𝕩: Empty array 𝕩 cannot have an atom fill element" % 0 %PROPER_FILLS
%%
# 𝕨∾𝕩
!"𝕨∾𝕩: Lengths not matchable (⟨6⟩ ≡ ≢𝕨, 1‿1 ≡ ≢𝕩)" % ("abc""def")"a"
!"𝕨∾𝕩: Lengths not matchable (⟨6⟩ ≡ ≢𝕨, 1‿1 ≡ ≢𝕩)" % (("abc")"def")111
! (2"abcdefgh") ["ab","cd"]["ef","gh"]
! (2"abcdef") ["ab","cd"]"ef"
! (2"abcdef") "ab"["cd","ef"]
! (2"abcdefgh") (a["ab","cd"])["ef","gh"] •internal.Keep a
! (2"abcdef") (a["ab","cd"])"ef" •internal.Keep a
! (2"abcdef") "ab"a["cd","ef"] •internal.Keep a
!"𝕨∾𝕩: Argument ranks must differ by 1 or less (0≡=𝕨, 2≡=𝕩)" % 133
!"𝕨∾𝕩: Argument ranks must differ by 1 or less (1≡=𝕨, 3≡=𝕩)" % 12333
!"𝕨∾𝕩: Argument ranks must differ by 1 or less (3≡=𝕨, 1≡=𝕩)" % 12˜333
!"𝕨∾𝕩: Lengths not matchable (3‿4 ≡ ≢𝕨, 3‿3 ≡ ≢𝕩)" % (34)33
!"𝕨∾𝕩: Lengths not matchable (2‿2 ≡ ≢𝕨, 2‿3 ≡ ≢𝕩)" % ["ab","cd"]["efg","hjk"]
!"𝕨∾𝕩: Lengths not matchable (2‿2 ≡ ≢𝕨, ⟨3⟩ ≡ ≢𝕩)" % ["ab","cd"]"efg"
!"𝕨∾𝕩: Lengths not matchable (⟨3⟩ ≡ ≢𝕨, 2‿2 ≡ ≢𝕩)" % "abz"["cd","ef"]
!"𝕨∾𝕩: Lengths not matchable (2‿2 ≡ ≢𝕨, 2‿3 ≡ ≢𝕩)" % (a["ab","cd"])["efg","hjk"]
!"𝕨∾𝕩: Lengths not matchable (2‿2 ≡ ≢𝕨, ⟨3⟩ ≡ ≢𝕩)" % (a["ab","cd"])"efg"
!"𝕨∾𝕩: Lengths not matchable (⟨3⟩ ≡ ≢𝕨, 2‿2 ≡ ≢𝕩)" % "abz"a["cd","ef"]
# 𝕨≍𝕩
!"𝕨≍𝕩: 𝕨 and 𝕩 must have equal shapes (3‿4 ≡ ≢𝕨, 3‿3 ≡ ≢𝕩)" % (34)33
!"𝕨≍𝕩: 𝕨 and 𝕩 must have equal shapes (⟨3⟩ ≡ ≢𝕨, ⟨2⟩ ≡ ≢𝕩)" % 12312
!"𝕨≍𝕩: 𝕨 and 𝕩 must have equal shapes (⟨3⟩ ≡ ≢𝕨, ⟨⟩ ≡ ≢𝕩)" % 1231
!"𝕨≍𝕩: Result rank too large" % ˜(2551)1
# ≍𝕩
!"≍𝕩: Result rank too large (255≡=𝕩)" % 256 1
%USE eqvar 1234564 {c𝕊e: _eqvar´¨ 4c, c ({𝕩<e}¨) 0c, 1c, c} 1, 'a', 12
# « & »
!"shift: Lengths not matchable (⟨2⟩ ≡ ≢𝕨, 3‿3 ≡ ≢𝕩)" % 12»33
!"shift: =𝕨 must be =𝕩 or ¯1+=𝕩 (0≡=𝕨, 3≡=𝕩)" % 1»222
!"shift: =𝕨 must be =𝕩 or ¯1+=𝕩 (2≡=𝕨, 1≡=𝕩)" % (22)»12
!"shift: Lengths not matchable (⟨2⟩ ≡ ≢𝕨, 3‿3 ≡ ≢𝕩)" % 12«33
!"shift: =𝕨 must be =𝕩 or ¯1+=𝕩 (0≡=𝕨, 3≡=𝕩)" % 1«222
!"shift: =𝕨 must be =𝕩 or ¯1+=𝕩 (2≡=𝕨, 1≡=𝕩)" % (22)«12
!"«𝕩: 𝕩 cannot be a scalar" % «0
!"»𝕩: 𝕩 cannot be a scalar" % »<0
# ⍉𝕩
%USE var !¨ { 𝕩 V a}¨ LV a234•rand.Range 2
%USE var !¨ { 𝕩 V a}¨ LV a¨ 234•rand.Range 2
%USE var !¨ { 𝕩 V a}¨ LV a@+234•rand.Range 100
# ⌽𝕩
%USE var {{! 𝕩 "Ai8"V𝕩} 𝕩•rand.Range 2}¨ 1000
# 𝕨⌽𝕩
!"Integer out of range: 1e20" % %USE eqerr 1e20,1e20 _eqerr 10, 0, 000,
!"Expected integer, got NaN" % %USE eqerr 0÷0, 0÷0 _eqerr 10, 0, 000,
!"Integer out of range: ∞" % %USE eqerr , _eqerr 10, 0, 000,
!"Expected integer, got function" % %USE eqerr _eqerr 10, 0, 000,
!"Expected integer, got character" % %USE eqerr 'a' _eqerr 10, 0, 000,
!"𝕨⌽⁼𝕩: 𝕨 must consist of integers" % %USE eqerr 'a' _eqerr 10, 0, 000,
!"𝕨⌽𝕩: 𝕨 contained non-number" % %USE eqerr 3'a', 'a'3, 0'a', 'a'0 _eqerr 000,0000
!"𝕨⌽⁼𝕩: 𝕨 contained non-number" % %USE eqerr 3'a', 'a'3, 0'a', 'a'0 _eqerr 000,0000
!"Integer out of range: ∞" % %USE eqerr 3, 3, 0, 0 _eqerr 000,0000
!"𝕨⌽𝕩: 𝕨 must have rank at most 1 (1‿1 ≡ ≢𝕨)" % %USE eqerr 1 _eqerr 221, 1
!"𝕨⌽⁼𝕩: 𝕨 must have rank at most 1 (1‿1 ≡ ≢𝕨)" % %USE eqerr 1 _eqerr 221, 1
!"𝕨⌽𝕩: Length of list 𝕨 must be at most rank of 𝕩 (3 ≡ ≠𝕨, ⟨⟩ ≡ ≢𝕩⟩" % 123 1
!"𝕨⌽⁼𝕩: 𝕩 must have rank at least 1" % 123 1
!"𝕨⌽𝕩: Length of list 𝕨 must be at most rank of 𝕩 (3 ≡ ≠𝕨, ⟨3⟩ ≡ ≢𝕩⟩" % 123 3
!"𝕨⌽⁼𝕩: 𝕩 must have rank at least 1" % 1
(< {a12}).a %% 12
123 4444256 %% F{(4|𝕨+4)𝕩} 3 F2 2 F˘ 1 F 4444256
(1+1e15) 10 %% (1+9)0
(-1+1e15) 10 %% 99
b11a"hello" b 'e' 12 5 a •Hash b %% 1
# ↑𝕩 & ↓𝕩
!"↑𝕩: 𝕩 must have rank at least 1" % 0
!"↓𝕩: 𝕩 must have rank at least 1" % <0
# 𝕨↓𝕩 & 𝕨↑𝕩
•Hash¨ ¯1•internal.Squeeze 1e9˜10000, 10000 %% 1
•Hash¨ 10000•internal.Squeeze 1e9˜10000, 10000 %% 1
# ¨
1 {𝕊:12}¨ 1 %% <12
1 {𝕊:12}¨<1 %% <12
(<1){𝕊:12}¨ 1 %% <12
(<1){𝕊:12}¨<1 %% <12
1 12¨ 1 %% <12
1 12¨<1 %% <12
(<1)12¨ 1 %% <12
(<1)12¨<1 %% <12
!"Mapping: Expected equal shape prefix (⟨2⟩ ≡ ≢𝕨, 4‿4 ≡ ≢𝕩)" % 12+¨44
!"Mapping: Expected equal shape prefix (⟨2⟩ ≡ ≢𝕨, ⟨4⟩ ≡ ≢𝕩)" % 12+¨4
¨ {a𝕩 𝕩} 23<"a" %% 6<"a"
¨ {a𝕩 231𝕩} 23<"a" %% 231<"a"
¨ {a𝕩 231𝕩} 6<"a" %% 231<"a"
¨ {a𝕩 23𝕩} 23<"a" %% 23<"a"
¨ 23<"a" %% 23<"a"
%USE tvar {a •internal.PureKeep¨_tvar 𝕩 b ¨_tvar 𝕩 a •Repr𝕩 {𝔽¬! 𝕨 (10'e') 𝕩}¨ b}¨ 2, 0, 5, 0, "hello", ""
# ⊔
!"𝕨⊔𝕩: ≠𝕨 must be either ≠𝕩 or one bigger (2≡≠𝕨, 3≡≠𝕩)" % 003
!"Out of memory" % "a"
!"Out of memory" % 1e50"a"
# ↕𝕩
!"Expected non-negative integer, got character" % @
!"Expected non-negative integer, got character" % "hi"
!"↕𝕩: 𝕩 must be either an integer or integer list (had rank 2)" % 221
!"↕𝕩: Result rank too large (300≡≠𝕩)" % 3001
# 𝕨↕𝕩
!"𝕨↕𝕩: Length of 𝕨 must be at most rank of 𝕩" % 00
!"𝕨↕𝕩: Length of 𝕨 must be at most rank of 𝕩" % 0031
00331 %% 44000
123 %% 21323
03 %% 400
# ≡𝕩
¨ , 0, "" %% 111
000 %% 1
1,12,1 %% 2
100 0 %% 100
10 %% 1
0 %% 0
# 𝕨⥊𝕩
!"𝕨⥊𝕩: Result rank too large" % (03002)0
# 𝕨⍷𝕩
%USE eqvar "ab" _eqvar "" %%
%USE eqvar "" _eqvar "ab" %% 111
%USE eqvar _eqvar 0 %% 1
%USE eqvar {} _eqvar 0 %%
%USE eqvar 0, 1 _eqvar 0 %%
%USE eqvar {},{} _eqvar 0 %%
%USE eqvar (0) _eqvar 10 %% 111
%USE eqvar "ab" _eqvar 05"ab" %% 040
%USE eqvar 0÷0,1,0÷0 _eqvar 0÷0,1˜ "01010000010101010"-'0' %% 150
%USE eqvar 0÷0,1,0÷0 _eqvar 4/0÷0,1˜ "01010000010101010"-'0' %% 4150
%USE eqvar [10÷0, ˜0÷0] _eqvar 1010 1130÷0 %% 990
(00)100 %% 111
10"" %% 111
(0000000)10000000 %% 11111111
(0000000)30003400 %% 31114511
!"Out of memory" % (0000000)1e9001e91e9000
'a'1 05 %% 040
"abc" 51'a' %% 500
(<"ab")<"aa", (<"ab")<"ab" %% <0,<1
{(=𝕨)=𝕩?𝕨𝕩;'e'}˜ 'a','b',<'a','b',"a","b","aa","bb" %% (88<1,<0,<1,<0,1,0,11,00,<0,<1,<0,<1,0,1,00,11,<1,<0,<1,<0,1,0,11,00,<0,<1,<0,<1,0,1,00,11,'e','e','e','e',1,0,11,00,'e','e','e','e',0,1,00,11,'e','e','e','e',,,1,0,'e','e','e','e',,,0,1)
01˜ 'a','b',<'a','b',"a","b","aa","bb",22'a' %% 99000000000000000000000000000000000000111100000111100000111100000111100000111111110
(599909101112"a") 10203004050607080101010100 %% 102030040505608121000
# ⊐𝕩
(¯1×) 01.5 %% 0102
# ⍷𝕩, ∊𝕩
2 0÷0 %% 2
200 0÷0 %% 200
2 0÷0 %% 11
200 0÷0 %% 2001
2 π %% 1
200 π %% 1
2 π %% 10
200 π %% 1199/10
40 %% 10
40 %% 1000
10000 1 %% 10 1
10000 1 %% 1 9990
04 1 %% 041
# 𝕨⊒𝕩
12233221185562531512434315234152 %% 088881837882848888588886
# 𝕨∊𝕩, 𝕨⊐𝕩, 𝕨⊒𝕩
{! ´(𝕨𝕩) = 𝕨𝕩}˜ 3100 "a⍉𝕩"1101e41e91e12"a",{}
{! ´(𝕨𝕩) = (𝕨) × 𝕨𝕩}˜ 3100 "a⍉𝕩"1101e41e91e12"a",{}
{! ´(𝕨𝕩) = (𝕨𝕩) 𝕩 𝕨}˜ 3100 "a⍉𝕩"1101e41e91e12"a",{}
# ⍋𝕩
100, 30000, 2e9, ¯100, ¯30000, ¯2e9, @+200, @+60000, @+1111111 {! a •internal.Keep 𝕨 + a •rand.Deal 𝕩} 3101001000
# 𝕨⍋𝕩
!"𝕨⍋𝕩: 𝕨 must be sorted" % a-¨ ¨ 10 a¨10
(¨)({𝕨𝕩! (𝕨𝕩) (𝕩) (𝕨)×0𝕨 •Cmp 𝕩}) 3, <3, 103, 'a', <'a', 10'a', 0÷0, 100÷0
(¨)({𝕨𝕩! (𝕨𝕩) (𝕩) (𝕨)×0𝕨 •Cmp 𝕩}) 3, <3, 103, 'a', <'a', 10'a', 0÷0, 100÷0
0 0,0÷0 %% 11
0÷0 ¯1÷0,¯3,0,1,2,1÷0,0÷0 %% 0000001
0,1 0,0÷0 %% 12
0,1,0÷0 0,0÷0 %% 13
0,0÷0 0,0÷0 %% 12
(100/0,0÷0) 0,0÷0 %% 100200
(¯5+10) 0,0÷0 %% 610
(¯5+10) 100,0÷0 %% 10610
((5)1000÷0) 10 %% 51+10
# 𝕨⍒𝕩
0 0,0÷0 %% 10
0÷0 ¯1÷0,¯3,0,1,2,1÷0,0÷0 %% 1111111
1,0 0,0÷0 %% 20
0÷0,1,0 0,0÷0 %% 31
0÷0,0 0,0÷0 %% 21
(100/0÷0,0) 0,0÷0 %% 200100
(5-10) 0,0÷0 %% 60
(5-10) 100,0÷0 %% 1060
((5)1000÷0) 10 %% 105-510
# ∧𝕩, 𝕩
"abc"3 %% (3)"abc"
"abc"3 %% (3)"abc"
"abc"3 %% (3)"abc"
"abc"3 %% "cba"210
"abc"3 %% "cba"210
"abc"3 %% "cba"210
# 𝕨|𝕩
{x2𝕨|𝕩 ! x •internal.EEqual 𝕨𝕨|𝕩𝕩 ! x •internal.EEqual 𝕨|𝕩𝕩}˜ - π, , 0÷0, 0.5, 0.1(10)(¯4+9)+278153132
(
# AS/SA/AA over types, 2-item array; %SLOW
%USE var EE•internal.EEqual
tests - π, , 0÷0, 0.5, 0.1(10)(¯4+9)+278153132
{w𝕊x:
wlxl2¨wx
wx ! ´(EE¨) wl { w|(𝕩 V xl) (𝕨 V wl)|x (𝕨 V wl)|(𝕩 V xl) }LV xl
CLR@
}˜ tests
)
(
# 1|scalar vs 1|f64arr over float exponents %SLOW
{𝕩! (1| •internal.EEqual 1|¨) - (2𝕩)×11.51000•rand.Range 0}¨ ¯1080+2110
)
# 𝕨÷𝕩
!"𝕨÷𝕩: Unexpected argument types" % 12, "ab"÷2
50"7.299999247803105e-309" {(100𝕨)÷𝕩}•ParseFloat "0.34361186623573303" %% •ParseFloat "2.1244898576334326e-308"
50"3.8863870613495216e-308" {(100𝕨)÷𝕩}•ParseFloat "0.3815327155289232" %% •ParseFloat "1.0186248526451468e-307"
# ⍟
%USE eqvar a¯5+10 {1+𝕩 10}_eqvar a %% ¨ 5+10
%USE eqvar a¯5+10 {1+𝕩 10}_eqvar a %% ¨ 5+10
%USE eqvar a¯5+10 {1+(𝕩{!𝕩10 𝕗}) 10}_eqvar a %% ¨ 5+10
!00, , "" 0 %% ,,
!"Calling a modifier" % 1+{} 0
!"⍟: 𝔾 contained non-number" % 1+1,,3 0
!"Expected integer, got 1.5" % 1+1.5 0
!"Integer out of range: 1e20" % 1+1e20 0
!"⍟: 𝔾 contained non-integer or integer was out of range" % %USE evar {1+𝕩 0}_evar 1.5
!"⍟: 𝔾 contained non-integer or integer was out of range" % %USE evar {1+𝕩 0}_evar 1e20
!"⍟: 𝔾 contained non-integer or integer was out of range" % %USE evar {1+𝕩 0}_evar 9, 1.5
!"⍟: 𝔾 contained non-integer or integer was out of range" % %USE evar {1+𝕩 0}_evar 1.5, 9
!"⍟: 𝔾 contained non-integer or integer was out of range" % %USE eqerr {1+𝕩𝕩 2}_eqerr - 263, 260
# ◶
!"𝔽◶𝕘𝕩: 𝕘 must have rank 1 when index is a number" % 1[12,34] 3
!"𝕨𝔽◶𝕘𝕩: 𝕘 must have rank 1 when index is a number" % "ab" [12,34] 3
!"𝕨𝔽◶𝕘𝕩: Index out of bounds of 𝕘" % 1 2- 3
!"𝔽◶𝕘𝕩: Index out of bounds of 𝕘" % 2- 3
!"𝕨⊑𝕩: Picking item at wrong rank (index 0‿0 in array of shape ⟨2⟩)" % +- 00 # shouldn't reference ⊑ but whatever
!"𝕨⊑𝕩: Picking item at wrong rank (index 1‿2 in array of shape ⟨3⟩)" % 1 ++- 01
10 +"ab""cd" ¯9 %% "cd"
1,2,0"ab""cd"1 @ %% "cd"1"ab"
# ˘ & ⎉
(1˜ 02032)50 1˜ 01002 %% 1501203/0202
!"⎉: Result rank too large" % (1˜ 02032)49 1˜ 01002
!"˘: Result rank too large" % ((2551)1)˘ 12
!"˘: Empty argument too large (0‿1000000000‿1000000000‿1000000000 ≡ ≢𝕩)" % 2 •internal.PureKeep˘ 01e91e91e90
!"˘: Empty argument too large (0‿1000000000‿1000000000‿1000000000 ≡ ≢𝕩)" % •internal.PureKeep˘ 01e91e91e90
!"⎉: Empty argument too large (0‿0‿1000000000‿1000000000‿1000000000 ≡ ≢𝕩)" % 2 •internal.PureKeep3 001e91e91e90
!"⎉: Empty argument too large (0‿0‿1000000000‿1000000000‿1000000000 ≡ ≢𝕩)" % •internal.PureKeep3 001e91e91e90
!"≍˘ 𝕩: Result rank too large (255≡=𝕩)" % ˘ (2551)1
!"≍⎉𝕘 𝕩: Result rank too large (255≡=𝕩)" % 100 (2551)1
!"𝔽˘: Incompatible result shapes (encountered shapes ⟨0⟩ and ⟨10⟩)" % {𝕩}˘ 410100
!"𝔽˘: Incompatible result shapes (encountered shapes ⟨0⟩ and ⟨10⟩)" % 3 {𝕩}˘ 410100
!"𝔽⎉𝕘: Incompatible result shapes (encountered shapes ⟨0⟩ and ⟨10⟩)" % {𝕩}1 410100
!"𝔽⎉𝕘: Incompatible result shapes (encountered shapes ⟨0⟩ and ⟨10⟩)" % 3 {𝕩}1 410100
# `
!"𝔽`𝕩: 𝕩 cannot have rank 0" % `0
!"𝕨𝔽`𝕩: Shape of 𝕨 must match the cell of 𝕩 (2‿2 ≡ ≢𝕨, 3‿2‿3 ≡ ≢𝕩)" % (221)+`323
!"𝕨𝔽`𝕩: Shape of 𝕨 must match the cell of 𝕩 (2‿2 ≡ ≢𝕨, 3‿3‿2 ≡ ≢𝕩)" % (221)+`332
!"𝕨𝔽`𝕩: Shape of 𝕨 must match the cell of 𝕩 (⟨⟩ ≡ ≢𝕨, 3‿3 ≡ ≢𝕩)" % 2+`33
%USE eqvar %USE k +,-,×,÷,,,,,¬,,,<,>,,=,,,, {f𝕊arr: ! ( F _k`_k arr) _k F` _eqvar arr} {𝕩˘¨𝕩} ˘¨ 1, 101
%USE eqvar %USE k +,-,×,÷,,,,,¬,,,<,>,,=,,,, {f𝕊arr: ! (1 F _k`_k arr) _k (1¨𝕩)(F`) _eqvar arr} {𝕩˘¨𝕩} ˘¨ 1, 101
# ´
!"𝔽´𝕩: 𝕩 must be a list (⟨⟩ ≡ ≢𝕩)" % +´0
!"𝔽´𝕩: 𝕩 must be a list (3‿3 ≡ ≢𝕩)" % +´33
!"𝕨𝔽´𝕩: 𝕩 must be a list (3‿3 ≡ ≢𝕩)" % 2+´33
!"𝔽´𝕩: Identity not found" % •internal.Keep´
%USE eqvar +´_eqvar 1e31e2 %% 1e5
%USE eqvar +´_eqvar 1e3100 %% 4950e1
%USE eqvar +´_eqvar 1e4-100 %% ¯4950e2
%USE eqvar +´_eqvar 1e4-1e9 %% ¯1e13
+´0 %% <0
×´0 %% <1
+´0 %% <<<0
×´0 %% <<<1
# ˝
!"𝔽˝𝕩: 𝕩 must have rank at least 1" % ˝0
!"𝔽˝𝕩: Identity not found" % •internal.Keep˝
(4)+˝7 %% 21222324
(224)+˝72228 %% 228492100108
(224)+˝2228 %% 222367
+˝ 104 %% 45 ¨ 10×4
( 4) +˝ 104 %% (4) + 45 ¨ 10×4
(<¨ 4) +˝ 104 %% (4) + 45 ¨ 10×4
(05+¨4) +˝ 104 %% ((4) + 45) ¨ 5 + 11×4
{! 1•internal.ElType 𝕏˜ "Ah"•internal.Variation 101}¨ +,-,×,÷,,,,,|,¬,,,<,>,,=,, # insert_scal relies on all pervasive dyadic builtins implicitly squeezing
# ⌜
!"𝕨𝔽⌜𝕩: Result rank too large (200≡=𝕨, 200≡=𝕩)" % +˜(2001)1
# ˜
5˜˝ "ab" %% 5
5˜˜ "a" %% [[5]]
5˜˝˘"ab" %% 5