aboutsummaryrefslogtreecommitdiff
path: root/dzref_full
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-25 22:24:30 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-25 22:29:41 -0400
commit45891aac33db6260dd3da01624154bb67ddd39b4 (patch)
treef2bbf6b80621aec4935a427b2797a0805c53d8ce /dzref_full
parent6fe8f264d8a00cac94cea75e774a594a0004fcb0 (diff)
Define Identity using function comparisons in dzref_full
Diffstat (limited to 'dzref_full')
-rwxr-xr-xdzref_full28
1 files 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<n)◶⟨Type⊸(⊣⌜)⋄⥊⊸{⊑⟜𝕨¨n|𝕩}⟩↕l
}‿⊢𝕩
@@ -102,14 +105,14 @@ Pick1←{
𝕨↩𝕨+s×𝕨<0
(⥊𝕩)⊑˜0(⊑⟜𝕨+⊑⟜s×⊢)´-↕⊸¬≠𝕨
}
-Pickd←(0∨´⟜⥊IsArray¨∘⊣)◶Pick1‿{Pickd⟜𝕩¨𝕨}
+Pickd←(∨´∘⥊IsArray¨∘⊣)◶Pick1‿{Pickd⟜𝕩¨𝕨}
Pick←IsArray◶⥊‿⊢⊸Pickd
match←{¬∘(0⊑𝕨)◶(1⊑𝕨)‿𝕩}´⟨
⟨≠○IsArray , 0⟩
⟨¬IsArray∘⊢, =⟩
⟨≠○= , 0⟩
- ⟨0∨´≠○≢ , 0⟩
+ ⟨∨´≠○≢ , 0⟩
{∧´⥊𝕨Match¨𝕩}
@@ -152,8 +155,8 @@ _rankOp_←{
k←𝕨(Pair○= (0≤⊢)◶⟨⌊⟜-,0⌈-⟩¨ 𝔾_ranks)𝕩
Enc←{
f←⊑⟜(≢𝕩)¨↕𝕨
- c←1×´s←𝕨Cell𝕩
- f⥊⊑⟜(⥊𝕩)¨∘((s⥊↕c)+c×⊢)¨↕1×´f
+ c←×´s←𝕨Cell𝕩
+ f⥊⊑⟜(⥊𝕩)¨∘((s⥊↕c)+c×⊢)¨↕×´f
}
> ((⊑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}⍟¬"