From 45891aac33db6260dd3da01624154bb67ddd39b4 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sat, 25 Jul 2020 22:24:30 -0400 Subject: Define Identity using function comparisons in dzref_full --- dzref_full | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/dzref_full b/dzref_full index 00582d2f..569d1e69 100755 --- a/dzref_full +++ b/dzref_full @@ -29,6 +29,9 @@ Length ← (0<0⊑≢)◶⟨1⋄0⊑⊢⟩∘≢ × ↩ 0⊸(<->) ⊘ × | ← ×⟜× ⊘ {𝕩-𝕨×⌊𝕩÷𝕨} +Id←{(0⊑𝕨){𝕗=𝕩}◶𝕩‿(1⊑𝕨)} +identity ← +‿0 Id -‿0 Id ×‿1 Id ÷‿1 Id ⋆‿1 Id √‿1 Id ∧‿1 Id ∨‿0 Id |‿0 Id <‿0 Id ≤‿1 Id =‿1 Id ≥‿1 Id >‿0 Id ≠‿0 Id ⊑⟨!∘0⟩ # ⌊‿∞ ⌈‿¯∞ + _fold←{ ! 1==𝕩 l←≠v←𝕩 ⋄ F←𝔽 @@ -52,7 +55,7 @@ _eachd←{ _e←{ # 𝕨 has smaller or equal rank k←≠p←≢𝕨 ⋄ q←≢𝕩 ! ∧´(⊑⟜p=⊑⟜q)⌜↕k - l←1×´(q⊑˜k⊸+)⌜↕q≠⊸-k + l←×´(q⊑˜k⊸+)⌜↕q≠⊸-k a←⥊𝕨 ⋄ b←⥊𝕩 q⥊⥊(≠a) (⊑⟜a𝔽l⊸×⊸+⊑b˜)⌜○↕ l } @@ -80,8 +83,8 @@ Reshape←{ ! 1≥=𝕨 𝕨↩⥊𝕨 ! ∧´Nat¨𝕨 - l←1×´𝕨 - n←1×´≢𝕩 + l←×´𝕨 + n←×´≢𝕩 𝕨⥊(l=n)◶{ 𝕩(0 ((⊑k)Enc𝕨) 𝔽¨ ((1-˜≠)⊸⊑k)Enc𝕩 } @@ -162,7 +165,7 @@ _scan←{ ! 1≤=𝕩 F←𝔽 (0<≠∘⥊)◶⊢‿{ - r←⥊𝕩 ⋄ l←≠𝕩 ⋄ c←1×´1 Cell 𝕩 + r←⥊𝕩 ⋄ l←≠𝕩 ⋄ c←×´1 Cell 𝕩 {r↩r𝕩_amend˜𝕨F○(⊑⟜r)𝕩}⟜(c⊸+)¨↕c-˜≠r (≢𝕩)⥊r }𝕩 @@ -209,7 +212,7 @@ SelSub←{ ! ∧´⥊Int¨ 𝕨 ! ∧´⥊ 𝕨 (≥⟜-∧<) ≠𝕩 𝕨↩𝕨+(≠𝕩)×𝕨<0 - c←1×´s←1 Cell 𝕩 + c←×´s←1 Cell 𝕩 ⊑⟜(⥊𝕩)¨(c×𝕨)+⌜s⥊↕c } Select←ToArray⊸(SelSub _onAxes_ 1) @@ -230,7 +233,7 @@ Take←{ ! Int 𝕨 l←≠𝕩 i←(l+1)|¯1⌈l⌊((𝕨<0)×𝕨+l)+↕|𝕨 - i⊏JoinTo⟜(1⊸Cell⥊Type)⍟(0∨´l=i)𝕩 + i⊏JoinTo⟜(1⊸Cell⥊Type)⍟(∨´l=i)𝕩 } 𝕨 T _onAxes_ 0 (⟨1⟩⥊˜0⌈𝕨-○≠⊢)⊸∾∘≢⊸⥊𝕩 } @@ -337,11 +340,11 @@ Transpose←(=-1˜)⊸ReorderAxes⍟(0<=) Cmp ← ∨○IsArray◶{ # No arrays 𝕨(>-<)𝕩 # Assume they're numbers }‿{ # At least one array - e←𝕨-˜○(0∨´0=≢)𝕩 + e←𝕨-˜○(∨´0=≢)𝕩 𝕨(e=0)◶e‿{ c←𝕨×∘-○(IsArray+=)𝕩 s←≢𝕨 ⋄ t←≢𝕩 ⋄ r←𝕨⌊○=𝕩 - l←s{i←+´∧`𝕨=𝕩⋄m←1×´i↑𝕨⋄{c↩×-´𝕩⋄m↩m×⌊´𝕩}∘(⊑¨⟜𝕨‿𝕩)⍟(r⊸>)i⋄m}○(r↑⌽)t + l←s{i←+´∧`𝕨=𝕩⋄m←×´i↑𝕨⋄{c↩×-´𝕩⋄m↩m×⌊´𝕩}∘(⊑¨⟜𝕨‿𝕩)⍟(r⊸>)i⋄m}○(r↑⌽)t a←⥊𝕨⋄b←⥊𝕩 Trav←(=⟜l)◶{Trav∘(1+𝕩)⍟(0⊸=)a Cmp○(𝕩⊸⊑)b}‿c Trav 0 @@ -400,7 +403,6 @@ X←Raw←{≤4} ⍎"IsArray ← 0≠≡" ⍎"_amend ← {𝕨{𝕩⋄𝕗}⌾(𝕗⊑⊢)𝕩}" - ⍎"Identity← {𝕏´⟨⟩}" ⍎"Type ← ⟨⟩⥊0⊸⥊" '!' Mod "{𝕩 ⋄ ≤1}⍟¬" -- cgit v1.2.3