aboutsummaryrefslogtreecommitdiff
path: root/spec/reference.bqn
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-21 19:13:22 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-21 19:24:35 -0400
commitb3ecbb5695a5a0a0637c924da0022abca940ffee (patch)
treebb6928abcb6d2019450ea48637ef1ceb856fe3c5 /spec/reference.bqn
parentbb7f6750d5be62bafff46dd94883189977b39d6a (diff)
Add Rank function as monadic =
Diffstat (limited to 'spec/reference.bqn')
-rw-r--r--spec/reference.bqn68
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↕<˘⟩𝕨