aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-11 20:44:59 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-11 20:48:30 -0400
commitdfe95f4432507fcc11e85e080777e11638acdd20 (patch)
treeb88ab7c1a3ce9a33e860de6dd2b62da0aa0ad074
parentc75c727858c9cfe429c3a2ef40a45d8a562341d1 (diff)
One-line expression reversing
-rwxr-xr-xdc.bqn11
1 files changed, 2 insertions, 9 deletions
diff --git a/dc.bqn b/dc.bqn
index 356d8703..b7819f11 100755
--- a/dc.bqn
+++ b/dc.bqn
@@ -126,18 +126,11 @@ Compile←{
# Targetting dzaima/BQN bytecode:
-RevE←{
- p‿g←𝕨⋄q←g⊏p⋄b←q>0⋄e←q<0
- l←1+-⟜(b/g)⌾(e/⊢)e×g
- ps←b∨g⊏(𝕩∊bS)
- sl←-⟜(≠↑0∾⊢)(ps∾1)/+`l∾1
- PL←{sl⌾(𝕩⊸/)0¨𝕩}
- ⍋+`(¯1↓⍋0∾1+g)⊏1+(1(∾+○PL∾˜)ps)-1(∾+∾˜)l
-}
DParse ← {nv‿r𝕊𝕩:
g←⍋+`p←bB(⊣(≠⊸>ׯ1⋆2|⊢)⊐)𝕩
r+↩(𝕩=1⊑bB)(⊣∧¬⊸∨=○(⌈`(1+↕∘≠)⊸×)⊢)(¯1⊸⌽⌾(g⊸⊏)3=r)∨1≤r
- rev←p‿g RevE𝕩⋄g↩⍋+`rev⊏p
+ rev←⍋+`(¯1↓⍋¯1∾g)⊏1+-○(⊏⟜(¯1∾g))⟜⍋⍋(∾⟜1-˜0∾+`)g⊏(p>0)∨𝕩∊bS
+ g↩⍋+`rev⊏p
gr←g⊏rev⋄𝕩⊏˜↩gr⋄r⊏˜↩gr⋄o←gr⊏p>0
s←𝕩∊bS⋄ps←s∨o⋄a←𝕩∊2↑bG
r-↩ps∨a⋄op←r≥2⋄ro←op∨1⌽r=3