From 4eeb808545e8dd7ba3a8e0f89af3c875fce88af4 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 29 Jun 2020 19:49:13 -0400 Subject: Use plain dzaima/BQN when it passes the tests, up to layer 2 --- spec/dzref | 54 ++++-------------------------------------------------- test/testref.bqn | 2 ++ 2 files changed, 6 insertions(+), 50 deletions(-) diff --git a/spec/dzref b/spec/dzref index 6efe53f4..8c41eba4 100755 --- a/spec/dzref +++ b/spec/dzref @@ -1,27 +1,9 @@ #!/usr/bin/env dbqn -impl ← "β—Ά ← {𝕨((𝕨𝔽𝕩)βŠ‘π•˜){𝔽}𝕩} ⍝ LIMITED to number left operand result -⊘ ← {𝕨((1{𝔽}𝕨)-0)◢𝔽‿𝔾 𝕩} -⊒ ← {𝕩} -⊣ ← {𝕩}⊘{𝕨} -˜ ← {π•©π”½π•¨βŠ£π•©} -∘ ← {𝔽𝕨𝔾𝕩} -β—‹ ← {(𝔾𝕨)𝔽𝔾𝕩} -⊸ ← {(π”½π•¨βŠ£π•©)𝔾𝕩} ⍝ {(𝔽{(F𝕨)G𝕩}𝔾)˜˜} ⍝ {F←𝔽 β‹„ G←𝔾 β‹„ {(F𝕨)G𝕩}˜˜} ⍝ {(𝔽𝕨)𝔾𝕩}˜˜ -⟜ ← {(π•¨βŠ£π•©)𝔽𝔾𝕩} ⍝ {(𝔽{𝕨𝔽𝔾𝕩}𝔾)˜˜} ⍝ {F←𝔽 β‹„ G←𝔾 β‹„ {𝕨F G𝕩}˜˜} ⍝ {𝕨𝔽𝔾𝕩}˜˜ - -⍝ LIMITED to numeric arguments for scalar cases -√ ← β‹†βŸœ(Γ·2) ⊘ (β‹†βŸœΓ·Λœ) +impl ← "√ ← β‹†βŸœ(Γ·2) ⊘ (β‹†βŸœΓ·Λœ) ∧ ← Γ— ∨ ← (+-Γ—) -Β¬ ← 1+- -< ← {⟨⟩β₯ŠβŸ¨π•©βŸ©} ⊘ (Β¬β‰€Λœ) > ← (¬≀) -β‰₯ ← !∘0 ⊘ (β‰€Λœ) -β‰’ ↩ IsArrayβ—ΆβŸ¨βŸ©β€Ώβ‰’ ⍝ LIMITED to monadic case -Length ← (0<0βŠ‘β‰’)β—ΆβŸ¨1β‹„0βŠ‘βŠ’βŸ©βˆ˜β‰’ -β‰  ← Length ⊘ (¬∘=) -Γ— ↩ 0⊸(<->) ⊘ Γ— | ← Γ—βŸœΓ— ⊘ {𝕩-π•¨Γ—βŒŠπ•©Γ·π•¨} _eachm←{ @@ -73,8 +55,6 @@ _eachd←{ _perv←{ ⍝ Pervasion (βŠ’βŠ˜βˆ¨β—‹IsArray)β—ΆβŸ¨π”½β‹„π”½{𝕨𝔽_perv𝕩}¨⟩ } -⌊ ↩ ⌊ ⊘ {(𝕨>𝕩)βŠ‘π•¨β€Ώπ•©} _perv -⌈ ← -∘⌊∘- ⊘ {(𝕨<𝕩)βŠ‘π•¨β€Ώπ•©} _perv ⍝⌜ @@ -84,17 +64,6 @@ _perv←{ ⍝ Pervasion Int←IsArrayβ—ΆβŸ¨βŒŠβŠΈ=,0⟩ Nat←IsArrayβ—ΆβŸ¨0βŠΈβ‰€βˆ§βŒŠβŠΈ=,0⟩ -Deshape←IsArrayβ—Ά{βŸ¨π•©βŸ©}β€Ώβ₯Š -Reshape←{ - ! 1β‰₯≠≒𝕨 - 𝕨↩β₯Šπ•¨ - ! ∧´Nat¨𝕨 - n←≠𝕩 β‹„ l←1×´𝕨 - ! n≀○(0⊸=)l - 𝕨β₯ŠβŠ‘βŸœπ•©Β¨n|↕l -}⟜Deshape -β₯Š ↩ Deshape ⊘ Reshape - Range←{ I←{!Nat𝕩⋄↕𝕩} M←{!1=≠≒𝕩⋄(<⟨⟩)β₯ŠβŠΈβˆΎβŒœΒ΄I¨𝕩} @@ -124,10 +93,8 @@ Depth←IsArrayβ—Ά0β€Ώ{1+0⌈´DepthΒ¨β₯Šπ•©} βŠ‘ ↩ (0Β¨βˆ˜β‰’)⊸Pick ⊘ Pick ↕ ↩ Range -β—Ά ↩ {𝕨((𝕨𝔽𝕩)βŠ‘π•˜){𝔽}𝕩} ⍝ Same definition, new Pick ≑ ← Depth ⊘ Match -β‰’ ↩ β‰’ ⊘ (Β¬Match) ⍝⌜ @@ -367,9 +334,9 @@ ProgressiveIndexOf ← {π•¨βŠβ—‹(β‰Λ˜βŸœOccurrenceCountπ•¨βŠΈβŠ)𝕩} { names ← β₯Š"AB"βˆΎβŒœβ€’a - f_chr ← "!+-Γ—Γ·β‹†βˆšβŒŠβŒˆβˆ§βˆ¨Β¬|=≠≀<>β‰₯β‰‘β‰’βŠ£βŠ’β₯ŠβˆΎβ‰β†‘β†“β†•βŒ½β‰/β‹β’βŠβŠ‘βŠβŠ’βˆŠβ·βŠ”" - m_chr ← "˜˘¨⌜⁼´`" - d_chr ← "βˆ˜βŠΈβŸœβ—‹βŒΎβŽ‰βš‡βŸβ—ΆβŠ˜" + f_chr ← "!√∧∨|>β‰‘βˆΎβ‰β†‘β†“β†•βŒ½β‰/β‹β’βŠβŠ‘βŠβŠ’βˆŠβ·βŠ”" + m_chr ← "˘¨⌜´`" + d_chr ← "βŒΎβŽ‰βš‡βŸ" f_itr ← 0β₯ŠΛœβ‰ f_chr m_itr ← 0β₯ŠΛœβ‰ m_chr @@ -396,16 +363,6 @@ ProgressiveIndexOf ← {π•¨βŠβ—‹(β‰Λ˜βŸœOccurrenceCountπ•¨βŠΈβŠ)𝕩} ⍝ built-in assumptions Mod_f ← ⍎{𝔽 (Name_f 𝕨) ∾ " ↩ " ∾ 𝕩} - Mod_m ← ⍎{𝔽 (Name_m 𝕨) ∾ " ↩ " ∾ 𝕩} - - '+' Mod_f "+" - '-' Mod_f "-" - 'Γ—' Mod_f "Γ—" - 'Γ·' Mod_f "Γ·" - '⋆' Mod_f "⋆" - '⌊' Mod_f "⌊" - '=' Mod_f "=" - '≀' Mod_f "≀" ⍎"IsArray ← 0≠≑" @@ -414,11 +371,8 @@ ProgressiveIndexOf ← {π•¨βŠβ—‹(β‰Λ˜βŸœOccurrenceCountπ•¨βŠΈβŠ)𝕩} ⍎"Type ← ⟨⟩β₯Š0⊸β₯Š" '!' Mod_f "{𝕩 β‹„ ≀1}⍟¬" - 'β‰’' Mod_f "β‰’" - 'β₯Š' Mod_f "β₯Š" 'βŠ‘' Mod_f "βŠ‘" '↕' Mod_f "↕" - '⁼' Mod_m "⁼" E_isdef ← ⊒ β‰’ ("^["∾f_chr∾m_chr∾d_chr∾"] [←↩]")β€’_R_'_' ⍝ checks if line is a builtin redefinition diff --git a/test/testref.bqn b/test/testref.bqn index 635514dc..dfcf739a 100644 --- a/test/testref.bqn +++ b/test/testref.bqn @@ -77,6 +77,8 @@ 1≑¬0 2≑¬¯1 0≑3Β¬4 +βŸ©βŠ£π•©}0 +{⟨ 2≑4Β¬3 4≑5Β¬2 0≑|0 -- cgit v1.2.3