aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xspec/dzref16
-rw-r--r--spec/reference.bqn14
-rw-r--r--test/testref.bqn50
3 files changed, 65 insertions, 15 deletions
diff --git a/spec/dzref b/spec/dzref
index 00f6c85e..99d8789d 100755
--- a/spec/dzref
+++ b/spec/dzref
@@ -165,7 +165,7 @@ JoinTo←{
s←𝕨Pair○≒𝕩
a←1⌈´k←≠¨s
! ∧´1β‰₯a-k
- c←(a-k)+⟜(↕a-1)⊸⊏¨s
+ c←(kΒ¬a)+⟜(↕a-1)⊸⊏¨s
! ≑´c
l←+Β΄(a=k)βŠ£β—Ά1β€Ώ(βŠ‘βŠ’)Β¨s
(⟨lβŸ©βˆΎβŠ‘c)β₯Šπ•¨βˆΎβ—‹β₯Šπ•©
@@ -175,18 +175,19 @@ Take←{
T←{
! Int 𝕨
l←≠𝕩
- i←((𝕨<0)×𝕨+l)+↕|𝕨
- ((l+1)|Β―1⌈l⌊i)βŠπ•© JoinTo (1 Cell 𝕩)β₯ŠType 𝕩
+ i←(l+1)|Β―1⌈l⌊((𝕨<0)×𝕨+l)+↕|𝕨
+ i⊏JoinTo⟜(1⊸Cellβ₯ŠType)⍟(0∨´l=i)𝕩
}
𝕨 T _onAxes_ 0 (⟨1⟩β₯ŠΛœ0βŒˆπ•¨-β—‹β‰ βŠ’)βŠΈβˆΎβˆ˜β‰’βŠΈβ₯Šπ•©
}
Prefixes ← {!1≀≠≒𝕩 β‹„ (↕1+≠𝕩)TakeΒ¨<𝕩}
↑ ← Prefixes ⊘ Take
Drop←{
- s←(≠𝕨)(βŠ£β†‘βŠ’βˆΎβ₯ŠΛœ0⌈-βŸœβ‰ )≒𝕩
+ s←(≠𝕨)(βŠ£β†‘βŠ’βˆΎΛœ1β₯ŠΛœ0⌈-βŸœβ‰ )≒𝕩
((sΓ—Β―1⋆𝕨>0)+(-s)⌈sβŒŠπ•¨)↑𝕩
}
Suffixes ← {!1≀≠≒𝕩 β‹„ (↕1+≠𝕩)DropΒ¨<𝕩}
+↓ ← Suffixes ⊘ Drop
Windows←{
! IsArray 𝕩
@@ -194,12 +195,12 @@ Windows←{
! 𝕨≀○≠≒𝕩
! ∧´NatΒ¨β₯Šπ•¨
s←(≠𝕨)↑≒𝕩
- ! βˆ§Β΄π•¨β‰€s
- ><Β¨βŠΈβŠβŸœπ•©Β¨s(Β¬+βŒœβ—‹β†•βŠ’)β₯Šπ•¨
+ ! βˆ§Β΄π•¨β‰€1+s
+ 𝕨{(∾⟜(π•¨β‰ βŠΈβ†“β‰’π•©)βˆ˜β‰’β₯Š>)<Β¨βŠΈβŠβŸœπ•©Β¨s(Β¬+βŒœβ—‹β†•βŠ’)β₯Šπ•¨}⍟(0<≠𝕨)𝕩
}
Reverse ← {!1≀≠≒𝕩 β‹„ (-β†•βŠΈΒ¬β‰ π•©)βŠπ•©}
-Rotate ← {!Nat𝕨 β‹„ l←≠𝕩⋄(l|𝕨+↕l)βŠπ•©} _onAxes_ 0
+Rotate ← {!Int𝕨 β‹„ l←≠𝕩⋄(l|𝕨+↕l)βŠπ•©} _onAxes_ 0
Indices←{
! 1=≠≒𝕩
@@ -209,7 +210,6 @@ Indices←{
Rep ← Indices⊸⊏
Replicate ← {0<≠≒𝕨}β—Ά(β₯ŠΛœβŸœβ‰ Rep⊒)β€Ώ{!𝕨=○≠𝕩⋄𝕨Rep𝕩} _onAxes_ (1-0=β‰ )
-↓ ← Suffixes ⊘ Drop
↕ ↩ ↕ ⊘ Windows
⌽ ← Reverse ⊘ Rotate
/ ← Indices ⊘ Replicate
diff --git a/spec/reference.bqn b/spec/reference.bqn
index 5a6ab5ab..9c82cda1 100644
--- a/spec/reference.bqn
+++ b/spec/reference.bqn
@@ -269,7 +269,7 @@ JoinTo←{
s←𝕨Pair○≒𝕩
a←1⌈´k←≠¨s
! ∧´1β‰₯a-k
- c←(a-k)+⟜(↕a-1)⊸⊏¨s
+ c←(kΒ¬a)+⟜(↕a-1)⊸⊏¨s
! ≑´c
l←+Β΄(a=k)βŠ£β—Ά1β€Ώ(βŠ‘βŠ’)Β¨s
(⟨lβŸ©βˆΎβŠ‘c)β₯Šπ•¨βˆΎβ—‹β₯Šπ•©
@@ -279,13 +279,13 @@ Take←{
T←{
! Int 𝕨
l←≠𝕩
- i←((𝕨<0)×𝕨+l)+↕|𝕨
- ((l+1)|Β―1⌈l⌊i)βŠπ•© JoinTo (1 Cell 𝕩)β₯ŠType 𝕩
+ i←(l+1)|Β―1⌈l⌊((𝕨<0)×𝕨+l)+↕|𝕨
+ i⊏JoinTo⟜(1⊸Cellβ₯ŠType)⍟(∨´l=i)𝕩
}
𝕨 T _onAxes_ 0 (⟨1⟩β₯ŠΛœ0βŒˆπ•¨-β—‹β‰ βŠ’)βŠΈβˆΎβˆ˜β‰’βŠΈβ₯Šπ•©
}
Drop←{
- s←(≠𝕨)(βŠ£β†‘βŠ’βˆΎβ₯ŠΛœ0⌈-βŸœβ‰ )≒𝕩
+ s←(≠𝕨)(βŠ£β†‘βŠ’βˆΎΛœ1β₯ŠΛœ0⌈-βŸœβ‰ )≒𝕩
((sΓ—Β―1⋆𝕨>0)+(-s)⌈sβŒŠπ•¨)↑𝕩
}
Prefixes ← {!1≀≠≒𝕩 β‹„ (↕1+≠𝕩)TakeΒ¨<𝕩}
@@ -297,12 +297,12 @@ Windows←{
! 𝕨≀○≠≒𝕩
! ∧´NatΒ¨β₯Šπ•¨
s←(≠𝕨)↑≒𝕩
- ! βˆ§Β΄π•¨β‰€s
- ><Β¨βŠΈβŠβŸœπ•©Β¨s(Β¬+βŒœβ—‹β†•βŠ’)β₯Šπ•¨
+ ! βˆ§Β΄π•¨β‰€1+s
+ 𝕨{(∾⟜(π•¨β‰ βŠΈβ†“β‰’π•©)βˆ˜β‰’β₯Š>)<Β¨βŠΈβŠβŸœπ•©Β¨s(Β¬+βŒœβ—‹β†•βŠ’)β₯Šπ•¨}⍟(0<≠𝕨)𝕩
}
Reverse ← {!1≀≠≒𝕩 β‹„ (-β†•βŠΈΒ¬β‰ π•©)βŠπ•©}
-Rotate ← {!Nat𝕨 β‹„ l←≠𝕩⋄(l|𝕨+↕l)βŠπ•©} _onAxes_ 0
+Rotate ← {!Int𝕨 β‹„ l←≠𝕩⋄(l|𝕨+↕l)βŠπ•©} _onAxes_ 0
Indices←{
! 1=≠≒𝕩
diff --git a/test/testref.bqn b/test/testref.bqn
index bedfbfe0..62758027 100644
--- a/test/testref.bqn
+++ b/test/testref.bqn
@@ -201,4 +201,54 @@
((0βˆΎΒ¨β†•3)≍3β₯Š0)≑≑`↕2β€Ώ3
βŸ¨βŸ©β‰‘Γ—`⟨⟩
β‰‘βŸœ(!∘0`)3β€Ώ0β€Ώ2β₯Š""
+
+ ⍝ LAYER 5
+ ⍝ [183,230)
+ (<'a')β‰‘βŠ"abc"
+ "a"β‰‘βŠβ₯ŠΛ˜"abc"
+ (<'c')≑2⊏"abc"
+ (<'c')≑¯1⊏"abc"
+ "ccc"≑2β€ΏΒ―1β€Ώ2⊏"abc"
+ ((3-Λœβ†•5)βŠΈβŠβ‰‘2⊸⌽)↕5β€Ώ2
+ (0β€Ώ3β₯Š0)β‰‘βŸ¨βŸ©βŠ2β€Ώ3β₯Šβ†•6
+ ⟨3β€Ώ0,2β€Ώ1β€Ώ2⟩(Γ—βŸœ5⊸+βŒœΒ΄βˆ˜βŠ£β‰‘βŠ)β₯ŠβŸœ(↕×´)6β€Ώ5
+ (2β€Ώ0β₯Š0)β‰‘βŸ¨3β€ΏΒ―1,⟨⟩⟩⊏4β€Ώ3β₯Š0
+ 5β€Ώ1(<βŠΈβŠβ‰‘βŠ)↕6β€Ώ2
+ ⟨4β€Ώ0,1β€Ώ2β€Ώ3β€Ώ2β€Ώ1β€Ώ0⟩(+⌜´⊸(Γ—βŒœ)β‰‘βŠβŸœ(Γ—βŒœΛœ))+βŒœΛœβ†•5
+ "abc"≑3↑"abce"
+ "e"≑¯1↑"abce"
+ ""≑0↑"ab"
+ (<⟜3βŠΈΓ—β†•5)≑5↑↕3
+ (6β₯Š0)≑¯6↑↕0
+ (≍↕3)≑1↑2β€Ώ3β₯Šβ†•6
+ (β†‘βŸœ4≑β₯ŠβŸœ0)↕3
+ (≍"abc")≑1↑2β€Ώ3↑"abcd"
+ (6β₯Š1)(↑≑β₯ŠβŸœβŠ‘)2β€Ώ3β₯Šβ†•6
+ (β†•Β¨βˆ˜β†•βˆ˜(1⊸+)β‰‘β†‘βˆ˜β†•)5
+ (↑≑((↕4)≍¨2)β₯ŠΒ¨<)3β€Ώ2β₯Š"abcdef"
+ "d"≑3↓"abcd"
+ 1β€Ώ2β‰‘βŸœ(Β―3βŠΈβ†“)○↕4β€Ώ2
+ 1β€Ώ1β€Ώ3β€Ώ2β€Ώ1≑≒(5β₯Š0)↓↕3β€Ώ2β€Ώ1
+ (β†“βˆ˜β†•β‰‘β†•βˆ˜(1⊸+)+βŸœβŒ½β†‘βˆ˜β†•)5
+ (↕3β€Ώ4)≑1β†“Β¨βŠβ†•2β€Ώ3β€Ώ4
+ (4+βŒœβ—‹β†•2)≑2↕↕5
+ ⟨⟩(β†•β‰‘βŠ’)4β€Ώ3β₯Š"abcd"
+ (0βŠΈβ†•β‰‘(0β‰Λœ1+β‰ )⊸β₯Š)↕6
+ (7↕6β€Ώ0β₯Š"")≑0β€Ώ7β€Ώ0β₯Š""
+ β‰‘βŸœβŒ½βŸ¨βŸ©
+ β‰‘βŸœβŒ½"a"
+ "ba"β‰‘βŸœβŒ½"ab"
+ (βŒ½β‰‘(1-Λœβ‰ )(-β—‹βŠ‘βˆΎ1β†“βŠ’)βš‡1⊒)↕3β€Ώ2β€Ώ4
+ β‰‘βŸœβŒ½β†•β†•3
+ ∧´5(βŒ½β‰‘βŠ’)¨⟨"",β₯Šβˆž,↕5,↕0β€Ώ4,2β€Ώ0β€Ώ3β₯Š""⟩
+ ∧´("bcdea"β‰‘βŒ½βŸœ"abcde")Β¨1+5Γ—Β―10β€ΏΒ―2β€ΏΒ―1β€Ώ0β€Ώ1β€Ώ6β€Ώ61
+ ∧´⟨1,0β€Ώ2,Β―1β€Ώ1β€Ώ3⟩(βŠ‘βˆ˜βŒ½β‰‘(3βŠΈβ†‘)βŠΈβŠ‘)βš‡Β―1β€Ώβˆž 2β€Ώ3β€Ώ5β₯Š"abcdef"
+ ⟨⟩(βŒ½β‰‘βŠ’)'a'
+ 0β€Ώ4≑/1β€Ώ0β€Ώ0β€Ώ0β€Ώ1β€Ώ0
+ 1β€Ώ1β€Ώ2≑/0β€Ώ2β€Ώ1
+ β‰‘βŸœ/⟨⟩
+ "aabbcc"≑2/"abc"
+ 3β€Ώ3β€Ώ3β€Ώ2β€Ώ2β€Ώ1≑/˜3β€Ώ2β€Ώ1
+ (≍1∾¨1β€Ώ2β€Ώ2)≑(↕¨/↕)2β€Ώ3
+ ⟨⟩(/β‰‘βŠ’)≍"ab"
⟩