diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-01-11 21:58:37 -0500 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-01-11 22:03:26 -0500 |
| commit | 4df717aa072f1550fa4740c5413b551428b1119c (patch) | |
| tree | 764b198074d70db09e9d64e54510b102764a67de /src | |
| parent | 6a256ca9562cd593b68e312c3c4de5146272db04 (diff) | |
Some structural Under infrastructure
Diffstat (limited to 'src')
| -rw-r--r-- | src/r.bqn | 31 |
1 files changed, 23 insertions, 8 deletions
@@ -163,18 +163,29 @@ SelSub←{ } First ← (0<≠)◶⟨GetFill,0⊸⊑⟩ Deshape +¨ ↩ {𝕨(𝔽⌜)⊘(𝔽_eachd)○ToArray𝕩} + _under_←{ i←↕l←1×´s←≢𝕩 - v←𝕨𝔽○𝔾𝕩 ⋄ gi←𝔾s⥊i - n←(IsArray gi)⊑{⟨𝕩⟩}‿⥊ ⋄ v↩N v ⋄ gi↩N gi - g←Cmp0 _grade_ 0 gi - P←(≠g)⊸≤◶⟨(⊑⟜g)⊑gi˜,l⟩ - e←P j←0 - s⥊{e=𝕩}◶⟨⊑⟜(⥊𝕩),{𝕩⋄r←(j⊑g)⊑v⋄e↩P j↩1+j⋄r}⟩⌜i + v←𝕨𝔽○𝔾𝕩 ⋄ root‿elem←𝔾_structural 𝕩 + Captures←IsArray∘⊣◶⟨1, {𝕨◶0‿𝕩}´⟨IsArray⊢, =○=, 1×´=¨○≢, {1×´⥊𝕨Captures¨𝕩}⟩⟩ + ! elem Captures v + Set←{ + Set1←𝕨⊸{ + i←↕l←1×´s←≢𝕩 + nv‿gi←((IsArray 𝕨)⊑{⟨𝕩⟩}‿⥊)¨ v‿𝕨 + ! 1×´Nat⌜gi + g←Cmp0 _grade_ 0 gi + P←(≠g)⊸≤◶⟨(⊑⟜g)⊑gi˙,l⟩ + e←P j←0 + s⥊{e=𝕩}◶⟨⊑⟜(⥊𝕩),{𝕩⋄r←(j⊑g)⊑nv⋄e↩P j↩1+j⋄r}⟩⌜i + } + _at_←{(𝔾{𝕨⊸=⌜𝕩}↕∘≠) 𝔽⍟⊣¨ ⊢} + 0 { (𝕨≥≠root)◶⟨≢⥊(1+𝕨)⊸𝕊_at_(𝕨⊑root˙)∘⥊, Set1⟩𝕩 } 𝕩 + } + elem (IsArray root)◶⟨v˙_perv elem˙, Set⟩ 𝕩 } -¨ ↩ {𝕨(𝔽⌜)⊘(𝔽_eachd)○ToArray𝕩} - match←{(0⊑𝕨)◶(1⊑𝕨)‿𝕩}´⟨ ⟨=○IsArray, 0⟩ ⟨IsArray∘⊢, =⟩ @@ -701,3 +712,7 @@ FuncInverse ← (⊑ ⊣◶⟨ ⟩ 1⊸↓) Decompose Inverse ← Type◶(3‿1‿2/{⊢⊣𝕩IX∘≡⊢}‿FuncInverse‿("Cannot invert modifier"!0˙)) ⁼ ↩ {𝕗 (≢∧INF˙⊸≢)◶0‿(5‿_inv_≢0‿¯2⊏Decompose∘⊢)◶⊢‿{𝕏_inv_(𝕎_invChk_𝕏)} Inverse 𝕗} + +_structural←{ + ⟨⟩‿(𝔽⥊⟜(↕1×´⊢)≢𝕩) +} |
