diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-04-30 14:56:07 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-04-30 14:56:07 -0400 |
| commit | 1df2979a47cd40ec00d929c26b2aa4b05467069f (patch) | |
| tree | bdecbda35eda7c2b32e22b1dffb9b60866b3e7e5 /src | |
| parent | fe96ec4831914abc29955257924fc8ec5e24beba (diff) | |
Special Take/Drop implementation for atom π¨
Diffstat (limited to 'src')
| -rw-r--r-- | src/r1.bqn | 27 |
1 files changed, 20 insertions, 7 deletions
@@ -432,13 +432,26 @@ structFn β { } _takeDropβ{ - β¨gl,Noop,_indsβ©βπ + take β 1 - π + gl β πβ"β"βΏ"β" + noop β πββ¨1-=β|, 1-0βΈ=β© + inds β πββ¨ + { π½β(π¨βΈ<)aβ|π© β (0<π©)βΆβ¨Β―ββ(<β0)β+β(π¨+π©)β, Β―ββ(π¨βΈβ€)ββ©βa } + { π½ β 0βΈ<βΆβ¨β0β+,<ββ’+βΒ·β0β-β© } + β© pre β "π¨"βΎglβΎ"π©: π¨ must " ernk β preβΎ"have rank at most 1" eint β preβΎ"consist of integers" - { + IsArrayββ£βΆ{ + eint ! Int π¨ + pβ0β€π¨ + lβπ¨pβΆβ¨0β+,ββ©β π© + Fβπ©{(Fillπ)Λββπ©} + kβ1βSββ’ β π¨βΈ{kΓΒ΄β©cβ1 Cellπ© β Sβ©(β¨(0β(β π©)-β’)β(1-take)|π¨β©βΎc)βΈβ₯}β(1<=) π© + S ((|βπ¨-β ){π©pβΆβ¨βΎΛ,βΎβ©Fπ¨Γk}β(>β0)β’)βtake (lΓk) (take=p)βΆββΏβ β₯π© + }βΏ{ ernk ! 1β₯=π¨ - π¨ β© Deshape π¨ + π¨ β© β₯π¨ eint ! 1ΓΒ΄Intβπ¨ r β β π¨ s β r {(1βββπ¨-β π©)βΎπ©}β(>ββ ) β’π© @@ -452,11 +465,11 @@ _takeDropβ{ Sel β ββ(β₯π©) π©{Selβ©0βΈβ€βΆβ¨(Fillπ¨)Λ,Selβ©}ββ’doFil Selβ sh β₯ i - }_fillBy_β’ ToArray π© - } + } π© + }_fillBy_β’ β ToArray } -Take β β¨"β" β 1-=β| β { π½β(π¨βΈ<)aβ|π© β (0<π©)βΆβ¨Β―ββ(<β0)β+β(π¨+π©)β, Β―ββ(π¨βΈβ€)ββ©βa }β©_takeDrop -Drop β β¨"β" β 1-0βΈ= β { π½ β 0βΈ<βΆβ¨β0β+,<ββ’+βΒ·β0β-β© }β©_takeDrop +Take β 0 _takeDrop +Drop β 1 _takeDrop ShiftCheckβ{ "Β« or Β»: π© must have rank at least 1" ! 1β€=π© |
