diff options
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/reference.bqn | 68 |
1 files changed, 34 insertions, 34 deletions
diff --git a/spec/reference.bqn b/spec/reference.bqn index bba39aef..5d5424d8 100644 --- a/spec/reference.bqn +++ b/spec/reference.bqn @@ -23,7 +23,7 @@ ÷ # Reciprocal Divide ⋆ # Exponential Power ⌊ # Floor -= # Equals += # Rank Equals ≤ # Less Than or Equal to # Other basic functionality that we need to assume @@ -77,13 +77,13 @@ _eachm←{ E 0 ⋄ (≢𝕩)⥊r } _reduce←{ - ! 1=≠≢𝕩 + ! 1==𝕩 l←≠v←𝕩 ⋄ F←𝔽 r←𝕨 (0<l)◶{𝕩⋄Identity f}‿{l↩l-1⋄l⊑𝕩}⊘⊣ 𝕩 {r↩(𝕩⊑v)F r}¨(l-1)⊸-¨↕l r } -Length ← (0<0⊑≢)◶⟨1⋄0⊑⊢⟩∘≢ +Length ← (0<=)◶⟨1⋄0⊑≢⟩ #⌜ @@ -110,7 +110,7 @@ _eachd←{ a←⥊𝕨 ⋄ b←⥊𝕩 q⥊⥊(≠a) (⊑⟜a𝔽l⊸×⊸+⊑b˜)_table○↕ l } - (>○(≠≢))◶⟨𝔽_e⋄𝔽˜_e˜⟩ + (>○=)◶⟨𝔽_e⋄𝔽˜_e˜⟩ } _perv←{ # Pervasion (⊢⊘∨○IsArray)◶⟨𝔽⋄𝔽{𝕨𝔽_perv𝕩}¨⟩ @@ -129,7 +129,7 @@ Nat←IsArray◶⟨0⊸≤∧⌊⊸=,0⟩ Deshape←IsArray◶{⟨𝕩⟩}‿⥊ Reshape←{ - ! 1≥≠≢𝕨 + ! 1≥=𝕨 𝕨↩⥊𝕨 ! ∧´Nat¨𝕨 n←≠𝕩 ⋄ l←×´𝕨 @@ -139,12 +139,12 @@ Reshape←{ Range←{ I←{!Nat𝕩⋄↕𝕩} - M←{!1=≠≢𝕩⋄(<⟨⟩)⥊⊸∾⌜´I¨𝕩} + M←{!1==𝕩⋄(<⟨⟩)⥊⊸∾⌜´I¨𝕩} IsArray◶I‿M 𝕩 } Pick1←{ - ! 1=≠≢𝕨 + ! 1==𝕨 ! 𝕨=○≠s←≢𝕩 ! ∧´Int¨𝕨 ! ∧´𝕨(≥⟜-∧<)s @@ -157,7 +157,7 @@ Pick←IsArray◶⥊‿⊢⊸Pickd match←{¬∘(0⊑𝕨)◶(1⊑𝕨)‿𝕩}´⟨ ⟨≠○IsArray , 0⟩ ⟨¬IsArray∘⊢, =⟩ - ⟨≠○(≠≢) , 0⟩ + ⟨≠○= , 0⟩ ⟨∨´≠○≢ , 0⟩ {∧´⥊𝕨Match¨𝕩} ⟩ @@ -203,7 +203,7 @@ _depthOp_←{ 𝕨 n _d 𝕩 } _rankOp_←{ - k←𝕨(Pair○(≠≢) (0≤⊢)◶⟨⌊⟜-,0⌈-⟩¨ 𝔾_ranks)𝕩 + k←𝕨(Pair○= (0≤⊢)◶⟨⌊⟜-,0⌈-⟩¨ 𝔾_ranks)𝕩 Enc←{ f←⊑⟜(≢𝕩)¨↕𝕨 c←×´s←𝕨Cell𝕩 @@ -213,7 +213,7 @@ _rankOp_←{ } _scan←{ ! IsArray 𝕩 - ! 1≤≠≢𝕩 + ! 1≤=𝕩 F←𝔽 (0<≠∘⥊)◶⊢‿{ r←⥊𝕩 ⋄ l←≠𝕩 ⋄ c←×´1 Cell 𝕩 @@ -245,10 +245,10 @@ _iterate_←{ _onAxes_←{ F←𝔽 (𝔾<≡)∘⊣◶{ # One axis - ! 1≤≠≢𝕩 + ! 1≤=𝕩 𝕨F𝕩 }‿{ # Multiple axes - ! 1≥≠≢𝕨 + ! 1≥=𝕨 ! 𝕨≤○≠≢𝕩 R←{(⊑𝕨)F(1 DropV 𝕨)⊸R˘𝕩}⍟{0<≠𝕨} 𝕨R𝕩 @@ -288,12 +288,12 @@ Drop←{ s←(≠𝕨)(⊣↑⊢∾˜1⥊˜0⌈-⟜≠)≢𝕩 ((sׯ1⋆𝕨>0)+(-s)⌈s⌊𝕨)↑𝕩 } -Prefixes ← {!1≤≠≢𝕩 ⋄ (↕1+≠𝕩)Take¨<𝕩} -Suffixes ← {!1≤≠≢𝕩 ⋄ (↕1+≠𝕩)Drop¨<𝕩} +Prefixes ← {!1≤=𝕩 ⋄ (↕1+≠𝕩)Take¨<𝕩} +Suffixes ← {!1≤=𝕩 ⋄ (↕1+≠𝕩)Drop¨<𝕩} Windows←{ ! IsArray 𝕩 - ! 1≥≠≢𝕨 + ! 1≥=𝕨 ! 𝕨≤○≠≢𝕩 ! ∧´Nat¨⥊𝕨 s←(≠𝕨)↑≢𝕩 @@ -301,16 +301,16 @@ Windows←{ 𝕨{(∾⟜(𝕨≠⊸↓≢𝕩)∘≢⥊>)<¨⊸⊏⟜𝕩¨s(¬+⌜○↕⊢)⥊𝕨}⍟(0<≠𝕨)𝕩 } -Reverse ← {!1≤≠≢𝕩 ⋄ (-↕⊸¬≠𝕩)⊏𝕩} +Reverse ← {!1≤=𝕩 ⋄ (-↕⊸¬≠𝕩)⊏𝕩} Rotate ← {!Int𝕨 ⋄ l←≠𝕩⋄(l|𝕨+↕l)⊏𝕩} _onAxes_ 0 Indices←{ - ! 1=≠≢𝕩 + ! 1==𝕩 ! ∧´Nat¨𝕩 ⟨⟩∾´𝕩⥊¨↕≠𝕩 } Rep ← Indices⊸⊏ -Replicate ← {0<≠≢𝕨}◶(⥊˜⟜≠Rep⊢)‿{!𝕨=○≠𝕩⋄𝕨Rep𝕩} _onAxes_ (1-0=≠) +Replicate ← {0<=𝕨}◶(⥊˜⟜≠Rep⊢)‿{!𝕨=○≠𝕩⋄𝕨Rep𝕩} _onAxes_ (1-0=≠) #⌜ @@ -334,8 +334,8 @@ Join←{ s←≢¨𝕩 d←≠⊑s ! ∧´⥊d=≠¨s - ! d≥≠≢𝕩 - l←(≢𝕩){(𝕩⊑⟜≢a⊑˜(j=𝕩)⊸×)¨↕𝕨}¨j←↕r←≠≢a←𝕩 + ! d≥=𝕩 + l←(≢𝕩){(𝕩⊑⟜≢a⊑˜(j=𝕩)⊸×)¨↕𝕨}¨j←↕r←=a←𝕩 ! (r↑¨s)≡C l i←C{p←+´¨↑𝕩⋄(↕⊑⌽p)-𝕩/¯1↓p}¨l >i<¨⊸⊏¨l/𝕩 @@ -343,8 +343,8 @@ Join←{ Group←{ ! IsArray 𝕩 - Chk←{!1=≠≢𝕩⋄!∧´Int¨𝕩⋄!∧´¯1≤𝕩⋄≠𝕩} - l←(1<≡)◶Chk‿{!1=≠≢𝕩⋄Chk¨𝕩}𝕨 + Chk←{!1==𝕩⋄!∧´Int¨𝕩⋄!∧´¯1≤𝕩⋄≠𝕩} + l←(1<≡)◶Chk‿{!1==𝕩⋄Chk¨𝕩}𝕨 ! l≤○≠≢𝕩 ! ∧´l=l≠⊸↑≢𝕩 (𝕨⊸=/𝕩˜)¨↕1+¯1⌈´⚇1𝕨 @@ -352,33 +352,33 @@ Group←{ # Searching IndexOf←{ - c←1-˜≠≢𝕨 + c←1-˜=𝕨 ! 0≤c 𝕨 (0<≠𝕨)◶⟨0⎉c∘⊢,((+´<˘)∧`)≢⎉c⎉c‿∞⟩ 𝕩 } UniqueMask←{ - ! 1≤≠≢𝕩 + ! 1≤=𝕩 u←0↑𝕩 {⊑𝕩∊u}⊘{u↩u∾𝕩⋄1}‿0˘𝕩 } Find←{ - r←≠s←≢𝕨 - ! r≤≠≢𝕩 - 𝕨 ≡⎉r s ↕⎉r 𝕩 + r←=𝕨 + ! r≤=𝕩 + 𝕨 ≡⎉r (≢𝕨) ↕⎉r 𝕩 } ReorderAxes←{ 𝕩↩<⍟(0=≡)𝕩 - ! 1≥≠≢𝕨 + ! 1≥=𝕨 𝕨↩⥊𝕨 ! 𝕨≤○≠≢𝕩 ! ∧´Nat¨⥊𝕨 - r←(≠≢𝕩)-+´¬∊𝕨 + r←(=𝕩)-+´¬∊𝕨 ! ∧´𝕨<r 𝕨↩𝕨∾𝕨(¬∘∊˜/⊢)↕r (𝕨⊸⊏⊑𝕩˜)¨↕⌊´¨𝕨⊔≢𝕩 } -Transpose←(≠∘≢-1˜)⊸ReorderAxes⍟(0<≠∘≢) +Transpose←(=-1˜)⊸ReorderAxes⍟(0<=) # Sorting Cmp ← ∨○IsArray◶{ # No arrays @@ -386,8 +386,8 @@ Cmp ← ∨○IsArray◶{ # No arrays }‿{ # At least one array e←𝕨-˜○(∨´0=≢)𝕩 𝕨(e=0)◶e‿{ - c←𝕨×∘-○(IsArray+≠∘≢)𝕩 - s←≢𝕨 ⋄ t←≢𝕩 ⋄ r←s⌊○≠t + c←𝕨×∘-○(IsArray+=)𝕩 + s←≢𝕨 ⋄ t←≢𝕩 ⋄ r←𝕨⌊○=𝕩 l←s{i←+´∧`𝕨=𝕩⋄m←×´i↑𝕨⋄{c↩×-´𝕩⋄m↩m×⌊´𝕩}∘(⊑¨⟜𝕨‿𝕩)⍟(r⊸>)i⋄m}○(r↑⌽)t a←⥊𝕨⋄b←⥊𝕩 Trav←(=⟜l)◶{Trav∘(1+𝕩)⍟(0⊸=)a Cmp○(𝕩⊸⊑)b}‿c @@ -396,11 +396,11 @@ Cmp ← ∨○IsArray◶{ # No arrays } _grade←{ - ! 1≤≠≢𝕩 + ! 1≤=𝕩 i⊐˜+´˘(𝔽⎉∞‿¯1⎉¯1‿∞˜𝕩)(⌈⟜0+=⟜0⊸×)>⌜˜i←↕≠𝕩 } _bins←{ - c←1-˜≠≢𝕨 + c←1-˜=𝕨 ! 0≤c LE←𝔽⎉c≤0˜ ! (0<≠)◶⟨1,∧´·LE´˘2↕<˘⟩𝕨 |
