aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/r.bqn12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/r.bqn b/src/r.bqn
index 5fd2e620..b9d716ef 100644
--- a/src/r.bqn
+++ b/src/r.bqn
@@ -714,5 +714,15 @@ Inverse ← Type◶(3‿1‿2/{⊢⊣𝕩IX∘≡⊢}‿FuncInverse‿("Cannot i
⁼ ↩ {𝕗 (≢∧INF˙⊸≢)◶0‿(5‿_inv_≢0‿¯2⊏Decompose∘⊢)◶⊢‿{𝕏_inv_(𝕎_invChk_𝕏)} Inverse 𝕗}
_structural←{
- ⟨⟩‿(𝔽⥊⟜(↕1×´⊢)≢𝕩)
+ Inds ← ⥊⟜(↕1×´⊢)∘≢ 𝕩⊑⟜⥊´⌽
+ _s_ ← {
+ f←𝕗
+ st‿d‿o←𝕩
+ g←𝕨 St Inds∘{f↩f(¯1≢⊣)◶⟨⟩‿∾𝕩}⍟(d>IsArray) 𝕘
+ {f _s_ 𝕩}⍟o g
+ }
+ IsStruct ← 5‿s ≡ 0‿¯2⊏Decompose
+ _sfn ← {(IsStruct⊢)◶⟨𝕏, 𝕩‿𝕨‿𝕗{𝕨𝕏𝕗}⟩}
+ Depth←1 _sfn ⋄ Info←0 _sfn
+ 1‿3 ⊏ Decompose {𝕎𝕩}´ ⟨1 Depth 𝕗, ¯1 _s_ 0⟩
}