mirror of
https://github.com/urbit/ares.git
synced 2025-01-08 14:38:31 +03:00
wip: optimize +ask:qui (pending +hub jet)
This commit is contained in:
parent
82bd2b3480
commit
f918091ec8
@ -719,12 +719,25 @@
|
|||||||
++ ask
|
++ ask
|
||||||
|= axe=@
|
|= axe=@
|
||||||
?< =(0 axe)
|
?< =(0 axe)
|
||||||
|
=/ rev 1
|
||||||
|
=| don=(list (pair @ (list peon)))
|
||||||
|- ^- prot
|
|- ^- prot
|
||||||
?: =(1 axe) prog
|
=+ [n l r]=?@(prog [~ ~ ~] prog)
|
||||||
|
?. =(1 axe)
|
||||||
?- (cap axe)
|
?- (cap axe)
|
||||||
%2 $(axe (mas axe), prog hed)
|
%2 $(axe (mas axe), don [[rev n] don], rev (peg rev 2), prog l)
|
||||||
%3 $(axe (mas axe), prog tal)
|
%3 $(axe (mas axe), don [[rev n] don], rev (peg rev 3), prog r)
|
||||||
==
|
==
|
||||||
|
=. n
|
||||||
|
%+ roll don
|
||||||
|
|= [[axe=@ lit=(list peon)] out=_n]
|
||||||
|
?: =(~ lit) out
|
||||||
|
=/ rel (hub axe rev)
|
||||||
|
%+ roll lit
|
||||||
|
|=([p=peon =_out] [p(axe (peg axe.p rel)) out])
|
||||||
|
?: ?&(?=(~ n) ?=(~ l) ?=(~ r)) ~
|
||||||
|
[n l r]
|
||||||
|
::
|
||||||
++ put
|
++ put
|
||||||
|= [axe=@ poor=prot]
|
|= [axe=@ poor=prot]
|
||||||
?< =(0 axe)
|
?< =(0 axe)
|
||||||
@ -846,6 +859,21 @@
|
|||||||
%+ turn slav
|
%+ turn slav
|
||||||
|= =peon
|
|= =peon
|
||||||
peon(axe (peg axe.peon axe))
|
peon(axe (peg axe.peon axe))
|
||||||
|
::
|
||||||
|
++ hub
|
||||||
|
:: ~/ %hub
|
||||||
|
:: axis after axis
|
||||||
|
::
|
||||||
|
:: computes the remainder of axis {b} when navigating to {a}.
|
||||||
|
:: (crashes if not `(pin a b)`)
|
||||||
|
|= [a=@ b=@]
|
||||||
|
?< =(0 a)
|
||||||
|
?< =(0 b)
|
||||||
|
|- ^- @
|
||||||
|
?: =(a 1) b
|
||||||
|
?> =((cap a) (cap b))
|
||||||
|
$(a (mas a), b (mas b))
|
||||||
|
::
|
||||||
++ dif-ju
|
++ dif-ju
|
||||||
|* a=(jug)
|
|* a=(jug)
|
||||||
|* b=_a
|
|* b=_a
|
||||||
|
Loading…
Reference in New Issue
Block a user