diff options
| -rwxr-xr-x | spec/dzref | 26 | ||||
| -rw-r--r-- | spec/reference.bqn | 2 | ||||
| -rw-r--r-- | test/testref.bqn | 48 |
3 files changed, 51 insertions, 25 deletions
@@ -1,6 +1,7 @@ #!/usr/bin/env dbqn -impl ← "√ ← ⋆⟜(÷2) ⊘ (⋆⟜÷˜) +impl ← "◶ ← {𝕨((𝕨𝔽𝕩)⊑𝕘){𝔽}𝕩} +√ ← ⋆⟜(÷2) ⊘ (⋆⟜÷˜) ∧ ← × ∨ ← (+-×) > ← (¬≤) @@ -64,12 +65,6 @@ _perv←{ ⍝ Pervasion Int←IsArray◶⟨⌊⊸=,0⟩ Nat←IsArray◶⟨0⊸≤∧⌊⊸=,0⟩ -Range←{ - I←{!Nat𝕩⋄↕𝕩} - M←{!1=≠≢𝕩⋄(<⟨⟩)⥊⊸∾⌜´I¨𝕩} - IsArray◶I‿M 𝕩 -} - Pick1←{ ! 1=≠≢𝕨 ! 𝕨=○≠s←≢𝕩 @@ -78,23 +73,13 @@ Pick1←{ 𝕨↩𝕨+s×𝕨<0 (⥊𝕩)⊑˜0(⊑⟜𝕨+⊑⟜s×⊢)´-↕⊸¬≠𝕨 } -Pickd←(0∨´IsArray¨∘⊣)◶Pick1‿{Pickd⟜𝕩¨𝕨} +Pickd←(0∨´⟜⥊IsArray¨∘⊣)◶Pick1‿{Pickd⟜𝕩¨𝕨} Pick←IsArray◶⥊‿⊢⊸Pickd -match←{¬∘(0⊑𝕨)◶(1⊑𝕨)‿𝕩}´⟨ - ⟨≠○IsArray , 0⟩ - ⟨¬IsArray∘⊢, =⟩ - ⟨≠○(≠≢) , 0⟩ - ⟨0∨´≠○≢ , 0⟩ - {∧´⥊𝕨Match¨𝕩} -⟩ - Depth←IsArray◶0‿{1+0⌈´Depth¨⥊𝕩} ⊑ ↩ (0¨∘≢)⊸Pick ⊘ Pick -↕ ↩ Range - -≡ ← Depth ⊘ Match +≡ ← Depth ⊘ ≡ ⍝⌜ @@ -336,7 +321,7 @@ ProgressiveIndexOf ← {𝕨⊐○(≍˘⟜OccurrenceCount𝕨⊸⊐)𝕩} names ← ⥊"AB"∾⌜•a f_chr ← "!√∧∨|>≡∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔" m_chr ← "˘¨⌜´`" - d_chr ← "⌾⎉⚇⍟" + d_chr ← "⌾⎉⚇⍟◶" f_itr ← 0⥊˜≠f_chr m_itr ← 0⥊˜≠m_chr @@ -373,6 +358,7 @@ ProgressiveIndexOf ← {𝕨⊐○(≍˘⟜OccurrenceCount𝕨⊸⊐)𝕩} '!' Mod_f "{𝕩 ⋄ ≤1}⍟¬" '⊑' Mod_f "⊑" '↕' Mod_f "↕" + '≡' Mod_f "≡" E_isdef ← ⊢ ≢ ("^["∾f_chr∾m_chr∾d_chr∾"] [←↩]")•_R_'_' ⍝ checks if line is a builtin redefinition diff --git a/spec/reference.bqn b/spec/reference.bqn index 6b4f9f1f..6ecf59d3 100644 --- a/spec/reference.bqn +++ b/spec/reference.bqn @@ -151,7 +151,7 @@ Pick1←{ 𝕨↩𝕨+s×𝕨<0 (⥊𝕩)⊑˜0(⊑⟜𝕨+⊑⟜s×⊢)´-↕⊸¬≠𝕨 } -Pickd←(∨´IsArray¨∘⊣)◶Pick1‿{Pickd⟜𝕩¨𝕨} +Pickd←(∨´∘⥊IsArray¨∘⊣)◶Pick1‿{Pickd⟜𝕩¨𝕨} Pick←IsArray◶⥊‿⊢⊸Pickd match←{¬∘(0⊑𝕨)◶(1⊑𝕨)‿𝕩}´⟨ diff --git a/test/testref.bqn b/test/testref.bqn index dfcf739a..066ca277 100644 --- a/test/testref.bqn +++ b/test/testref.bqn @@ -39,7 +39,7 @@ ⟨⟩≡↕0 ⟨0⟩≡↕1 ⟨0,1,2,3,4,5,6⟩≡↕7 -⟩⊣𝕩}0 +⟩⊣𝕩}⍟1 34⥊1 {⟨ ⍝ LAYER 1 @@ -77,7 +77,7 @@ 1≡¬0 2≡¬¯1 0≡3¬4 -⟩⊣𝕩}0 +⟩⊣𝕩}⍟1 32⥊1 {⟨ 2≡4¬3 4≡5¬2 @@ -118,7 +118,7 @@ (2⊸⊑≡⊢´)"a"‿2‿(3‿"d") 2(⊣≡⊢´)"a"‿2‿(3‿"d") 7‿10≡+¨´⟨⟨2,3⟩,⟨5,7⟩⟩ -⟩⊣𝕩}0 +⟩⊣𝕩}⍟1 38⥊1 {⟨ ⍝ LAYER 2 @@ -136,5 +136,45 @@ 3(+¨≡+⌜)↕6 3‿4‿5‿6‿6≡{F:F⍟(×≡)⊸∾⟜⥊´𝕩}⟨2,1⟩+⟨⟨⟨⟨1,2⟩,3⟩,4⟩,5⟩ (=¨⟜(⥊⟜(↕×´)3‿4)≡(↕4)=⌜˜4|⊢)1‿6‿8 -⟩⊣𝕩}0 +⟩⊣𝕩}⍟1 13⥊1 + +{⟨ + ⍝ LAYER 3 + ⍝ [117,152) + 2≡⊑⟨2⟩ + "ab"≡⊑⟨"ab"⟩ + 0≡⊑↕20 + 4≡⊑3‿2‿1⥊4⥊⊸∾5⥊0 + 'c'≡2⊑"abcd" + 'c'≡¯2⊑"abcd" + 7≡7⊑↕10 + 21≡2‿¯3⊑(10×↕3)+⌜↕4 + 21‿12‿03≡⟨2‿¯3,1‿2,0‿¯1⟩⊑(10×↕3)+⌜↕4 + "dfeb"≡(⥊¨-⟨3,1,2,5⟩)⊑"abcdef" + "abc"≡⟨⟩⊑<"abc" + ⟨7,7‿7,7⟩≡⟨⟨⟩,⟨⟨⟩,⟨⟩⟩,⟨⟩⟩⊑<7 + ⟨7,⟨7,<7⟩⟩≡⟨⟨⟩,⟨⟨⟩,<⟨⟩⟩⟩⊑7 + "abcfab"≡⥊(↕2‿3)⊑5‿5⥊"abcdef" + "aedcaf"≡⥊(-↕2‿3)⊑5‿5⥊"abcdef" + (<6⥊0)(⊑≡<∘⊑∘⊢)(6⥊1)⥊5 + ¯6≡1‿0◶(2‿2⥊0‿0‿-‿0)6 + ⟨3⟩≡⥊3 + ⟨3,3,3⟩≡3⥊3 + 6(⊢⌜≡∾○≢⥊⊢)○↕3 + (<≡↕)⟨⟩ + (↕∘⥊≡⥊¨∘↕)9 + ¬'a'≡<'a' + ¬"a"≡≍"a" + ¬⟨1,2,⟨4,4⟩,5⟩≡○(2‿2⊸⥊)⟨1,2,⟨3,4⟩,5⟩ + ¬2‿3‿4≡2‿3 + ¬1.001≡1.002 + 'a'≢2 + 0≡≡'a' + 1≡≡↕6 + 2≡≡↕2‿4 + 3≡≡<<<4 + (1¨≡-○≡˜⟜↕¨)⟨0,⟨⟩,⟨1⟩,2,⟨3,4⟩⟩ + 2≡≡⟨5,⟨'c',+,2⟩⟩ + 0≡≡⊑⟨-⟩ +⟩⊣𝕩}⍟1 35⥊1 ⟩ |
