mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-09-22 07:59:22 +03:00
To experiment with ++walk and its slowness.
This commit is contained in:
parent
9abe2f5dc2
commit
7e83588e83
263
gen/walk.hoon
263
gen/walk.hoon
@ -11,6 +11,258 @@
|
||||
::
|
||||
++ ap
|
||||
|_ gen/twig
|
||||
::
|
||||
++ walk :: forward traverse
|
||||
|* life/mold
|
||||
|= $: vit/life
|
||||
$= mac
|
||||
$- $: twig
|
||||
life
|
||||
$-({? twig life} {twig life})
|
||||
==
|
||||
(unit (pair twig life))
|
||||
==
|
||||
^- {twig life}
|
||||
=/ use &
|
||||
=< apex
|
||||
|%
|
||||
++ apex
|
||||
|- ^- {twig life}
|
||||
=* aid |= {use/? gen/twig vit/life}
|
||||
^$(use use, gen gen, vit vit)
|
||||
=/ gun ?:(use (mac gen vit aid) ~)
|
||||
?^ gun u.gun
|
||||
?: ?=(^ -.gen)
|
||||
%.(gen dubs)
|
||||
?- -.gen
|
||||
$$ (lead -.gen %.(+.gen noop))
|
||||
$base (lead -.gen %.(+.gen noop))
|
||||
$bunt (lead -.gen %.(+.gen expr))
|
||||
$bust (lead -.gen %.(+.gen noop))
|
||||
$dbug (lead -.gen %.(+.gen nexp))
|
||||
$hand (lead -.gen %.(+.gen noop))
|
||||
$knit (lead -.gen %.(+.gen (moto bark)))
|
||||
$leaf (lead -.gen %.(+.gen noop))
|
||||
$limb (lead -.gen %.(+.gen noop))
|
||||
$lost (lead -.gen %.(+.gen expr))
|
||||
$rock (lead -.gen %.(+.gen noop))
|
||||
$sand (lead -.gen %.(+.gen noop))
|
||||
$tell (lead -.gen %.(+.gen moar))
|
||||
$tune (lead -.gen %.(+.gen tung))
|
||||
$wing (lead -.gen %.(+.gen noop))
|
||||
$yell (lead -.gen %.(+.gen moar))
|
||||
$claw (lead -.gen %.(+.gen dubs))
|
||||
$shoe (lead -.gen %.(+.gen expr))
|
||||
$bank (lead -.gen %.(+.gen moar))
|
||||
$book (lead -.gen %.(+.gen moar))
|
||||
$lamb (lead -.gen %.(+.gen dubs))
|
||||
$bush (lead -.gen %.(+.gen dubs))
|
||||
$pick (lead -.gen %.(+.gen moar))
|
||||
$coat (lead -.gen %.(+.gen nexp))
|
||||
$grow (lead -.gen %.(+.gen expr))
|
||||
$door (lead -.gen %.(+.gen (trio noop expr arms)))
|
||||
$door (lead -.gen %.(+.gen (trio noop expr arms)))
|
||||
$gasp (lead -.gen %.(+.gen (twin noop dubs)))
|
||||
$corp (lead -.gen %.(+.gen (twin noop arms)))
|
||||
$trap (lead -.gen %.(+.gen (twin noop expr)))
|
||||
$cork (lead -.gen %.(+.gen (trio noop expr arms)))
|
||||
$loop (lead -.gen %.(+.gen (twin noop expr)))
|
||||
$port (lead -.gen %.(+.gen (twin noop dubs)))
|
||||
$gill (lead -.gen %.(+.gen (twin noop dubs)))
|
||||
$gate (lead -.gen %.(+.gen (twin noop dubs)))
|
||||
$tray (lead -.gen %.(+.gen (twin noop expr)))
|
||||
$scon (lead -.gen %.(+.gen dubs))
|
||||
$conq (lead -.gen %.(+.gen (quad expr expr expr expr)))
|
||||
$cons (lead -.gen %.(+.gen dubs))
|
||||
$cont (lead -.gen %.(+.gen trey))
|
||||
$conl (lead -.gen %.(+.gen moar))
|
||||
$conp (lead -.gen %.(+.gen moar))
|
||||
$keep (lead -.gen %.(+.gen (twin noop moan)))
|
||||
$lace (lead -.gen %.(+.gen dubs))
|
||||
$call (lead -.gen %.(+.gen (twin expr moar)))
|
||||
$bake (lead -.gen %.(+.gen (trio noop expr moan)))
|
||||
$calq (lead -.gen %.(+.gen (quad expr expr expr expr)))
|
||||
$calt (lead -.gen %.(+.gen trey))
|
||||
$open (lead -.gen %.(+.gen (trio noop expr moar)))
|
||||
$make (lead -.gen %.(+.gen (twin noop moan)))
|
||||
$wish (lead -.gen %.(+.gen dubs))
|
||||
$bump (lead -.gen %.(+.gen expr))
|
||||
$nock (lead -.gen %.(+.gen dubs))
|
||||
$same (lead -.gen %.(+.gen dubs))
|
||||
$deep (lead -.gen %.(+.gen expr))
|
||||
$iron (lead -.gen %.(+.gen expr))
|
||||
$ward (lead -.gen %.(+.gen dubs))
|
||||
$like (lead -.gen %.(+.gen dubs))
|
||||
$cast (lead -.gen %.(+.gen dubs))
|
||||
$zinc (lead -.gen %.(+.gen expr))
|
||||
$burn (lead -.gen %.(+.gen expr))
|
||||
$name (lead -.gen %.(+.gen nexp))
|
||||
$lead (lead -.gen %.(+.gen expr))
|
||||
$halo (lead -.gen %.(+.gen nexp))
|
||||
$help (lead -.gen %.(+.gen nexp))
|
||||
$show (lead -.gen %.(+.gen dubs))
|
||||
$lurk (lead -.gen %.(+.gen dubs))
|
||||
$crap (lead -.gen %.(+.gen (raid expr)))
|
||||
$fast (lead -.gen %.(+.gen (quad noop expr moan expr)))
|
||||
$funk (lead -.gen %.(+.gen nexp))
|
||||
$thin (lead -.gen %.(+.gen (twin toad expr)))
|
||||
$hint (lead -.gen %.(+.gen (twin toad expr)))
|
||||
$poll (lead -.gen %.(+.gen nexp))
|
||||
$memo (lead -.gen %.(+.gen nexp))
|
||||
$dump (lead -.gen %.(+.gen trip))
|
||||
$ddup (lead -.gen %.(+.gen dubs))
|
||||
$warn (lead -.gen %.(+.gen (quad noop expr expr expr)))
|
||||
$peep (lead -.gen %.(+.gen dubs))
|
||||
$wad (lead -.gen %.(+.gen (twin expr moar)))
|
||||
$nub (lead -.gen %.(+.gen expr))
|
||||
$dip (lead -.gen %.(+.gen (twin expr moar)))
|
||||
$fry (lead -.gen %.(+.gen dubs))
|
||||
$new (lead -.gen %.(+.gen dubs))
|
||||
$fix (lead -.gen %.(+.gen (twin moan expr)))
|
||||
$var (lead -.gen %.(+.gen (trio tora expr expr)))
|
||||
$rev (lead -.gen %.(+.gen (trio tora expr expr)))
|
||||
$set (lead -.gen %.(+.gen trip))
|
||||
$huh (lead -.gen %.(+.gen (quad noop expr expr expr)))
|
||||
$rap (lead -.gen %.(+.gen dubs))
|
||||
$nip (lead -.gen %.(+.gen dubs))
|
||||
$per (lead -.gen %.(+.gen dubs))
|
||||
$sip (lead -.gen %.(+.gen (quad tora noop expr expr)))
|
||||
$pin (lead -.gen %.(+.gen dubs))
|
||||
$tow (lead -.gen %.(+.gen moar))
|
||||
$aka (lead -.gen %.(+.gen trip))
|
||||
$use (lead -.gen %.(+.gen dubs))
|
||||
$or (lead -.gen %.(+.gen moar))
|
||||
$case (lead -.gen %.(+.gen (twin noop (moto dubs))))
|
||||
$if (lead -.gen %.(+.gen trey))
|
||||
$lest (lead -.gen %.(+.gen trey))
|
||||
$ifcl (lead -.gen %.(+.gen trip))
|
||||
$deny (lead -.gen %.(+.gen dubs))
|
||||
$sure (lead -.gen %.(+.gen dubs))
|
||||
$deft (lead -.gen %.(+.gen (trio noop expr (moto dubs))))
|
||||
$and (lead -.gen %.(+.gen moar))
|
||||
$ifat (lead -.gen %.(+.gen trip))
|
||||
$ifno (lead -.gen %.(+.gen trip))
|
||||
$fits (lead -.gen %.(+.gen (twin expr noop)))
|
||||
$not (lead -.gen %.(+.gen expr))
|
||||
$twig (lead -.gen %.(+.gen dubs))
|
||||
$wrap (lead -.gen %.(+.gen expr))
|
||||
$spit (lead -.gen %.(+.gen dubs))
|
||||
$code (lead -.gen %.(+.gen expr))
|
||||
$need (lead -.gen %.(+.gen nexp))
|
||||
$fail (lead -.gen %.(+.gen noop))
|
||||
==
|
||||
++ arms
|
||||
(raid (twin noop (raid (twin noop heel))))
|
||||
::
|
||||
++ bark
|
||||
|= wof/woof
|
||||
?-(wof @ [wof vit], ^ (lead ~ (expr p.wof)))
|
||||
::
|
||||
++ dubs
|
||||
(twin expr expr)
|
||||
::
|
||||
++ expr
|
||||
|= p/twig
|
||||
^$(gen p)
|
||||
::
|
||||
++ heel
|
||||
|= bud/foot
|
||||
?- -.bud
|
||||
$ash =^(nex vit ^$(gen p.bud) [[%ash nex] vit])
|
||||
$elm =^(nex vit ^$(gen p.bud) [[%elm nex] vit])
|
||||
==
|
||||
::
|
||||
++ lead
|
||||
|* {sem/@tas out/{* life}}
|
||||
[[sem -.out] +.out]
|
||||
::
|
||||
++ moan
|
||||
(moto nexp)
|
||||
::
|
||||
++ moar
|
||||
(moto expr)
|
||||
::
|
||||
++ moto
|
||||
|* etc/$-(* {* life})
|
||||
|* bud/*
|
||||
^+ [bud vit]
|
||||
?: =(~ bud) [bud vit]
|
||||
=^ heb vit (etc -.bud)
|
||||
=^ mor vit $(bud +.bud)
|
||||
[[heb mor] vit]
|
||||
::
|
||||
++ nexp
|
||||
(twin noop expr)
|
||||
::
|
||||
++ noop
|
||||
|* bud/*
|
||||
[bud vit]
|
||||
::
|
||||
++ quad
|
||||
|* $: one/$-(* {* life})
|
||||
two/$-(* {* life})
|
||||
tri/$-(* {* life})
|
||||
qua/$-(* {* life})
|
||||
==
|
||||
|* bud/*
|
||||
=^ yal vit (one -.bud)
|
||||
=^ ves vit (two +<.bud)
|
||||
=^ jot vit (tri +>-.bud)
|
||||
=^ wip vit (qua +>+.bud)
|
||||
[[yal ves jot wip] vit]
|
||||
::
|
||||
++ raid
|
||||
|* etc/$-(* {* life})
|
||||
|* bud/*
|
||||
^+ [bud vit]
|
||||
?: =(~ bud) [bud vit]
|
||||
=^ lef vit $(bud +<.bud)
|
||||
=^ ryt vit $(bud +>.bud)
|
||||
=^ top vit (etc ->.bud)
|
||||
[[[-<.bud top] lef ryt] vit]
|
||||
::
|
||||
++ trey
|
||||
(trio expr expr expr)
|
||||
::
|
||||
++ trio
|
||||
|* $: one/$-(* {* life})
|
||||
two/$-(* {* life})
|
||||
tri/$-(* {* life})
|
||||
==
|
||||
|* bud/*
|
||||
=^ yal vit (one -.bud)
|
||||
=^ ves vit (two +<.bud)
|
||||
=^ jot vit (tri +>.bud)
|
||||
[[yal ves jot] vit]
|
||||
::
|
||||
++ trip
|
||||
(trio noop expr expr)
|
||||
::
|
||||
++ toad
|
||||
|= bud/$@(term {p/term q/twig})
|
||||
?@ bud [bud vit]
|
||||
(lead p.bud (expr q.bud))
|
||||
::
|
||||
++ tora
|
||||
(twin noop twee)
|
||||
::
|
||||
++ tung
|
||||
|= bud/{p/what q/$@(term tune)}
|
||||
?@ q.bud [bud vit]
|
||||
(lead p.bud %.(q.bud (twin (raid (twin noop twee)) (moto expr))))
|
||||
::
|
||||
++ twee
|
||||
|= bud/(unit twig)
|
||||
?~ bud [~ vit]
|
||||
(lead ~ (expr u.bud))
|
||||
::
|
||||
++ twin
|
||||
|* {one/$-(* {* life}) two/$-(* {* life})}
|
||||
|* bud/*
|
||||
=^ yal vit (one -.bud)
|
||||
=^ ves vit (two +.bud)
|
||||
[[yal ves] vit]
|
||||
--
|
||||
++ gi
|
||||
=| whit
|
||||
=* wit -
|
||||
@ -128,10 +380,10 @@
|
||||
::
|
||||
++ humm
|
||||
|* {pif/@tas suf/*}
|
||||
|= {cog/term wat/what)
|
||||
|= {wat/what cog/term}
|
||||
^- (pair twig whit)
|
||||
=^ taw wit (grif cog wat)
|
||||
[[pif [cog taw] suf] wit]
|
||||
[[pif [taw cog] suf] wit]
|
||||
::
|
||||
++ runk
|
||||
^- (pair twig whit)
|
||||
@ -155,6 +407,13 @@
|
||||
[[%2 one two] wit]
|
||||
==
|
||||
--
|
||||
::
|
||||
++ graf
|
||||
:: ^- (unit twig)
|
||||
:: =^ nex wit ((walk whit) wit grad)
|
||||
:: ?:(gray ~ `nex)
|
||||
=^ nex wit ((walk whit) wit grad)
|
||||
nex
|
||||
--
|
||||
--
|
||||
--
|
||||
|
Loading…
Reference in New Issue
Block a user