mirror of
https://github.com/urbit/shrub.git
synced 2025-01-06 04:07:23 +03:00
%dill, etc.
This commit is contained in:
parent
d6889cdf6a
commit
0f588c9546
@ -1,6 +1,6 @@
|
||||
!: :: ames (4a), networking
|
||||
:: :: ames (4a), networking
|
||||
::
|
||||
|= pit=vase
|
||||
|= pit+vase
|
||||
=> =~
|
||||
:: structures
|
||||
|%
|
||||
|
@ -1,6 +1,6 @@
|
||||
:: :: %behn, just a timer
|
||||
!? 164
|
||||
!:::
|
||||
::::
|
||||
|= pit=vase
|
||||
=> =~
|
||||
|%
|
||||
|
@ -1,4 +1,4 @@
|
||||
!:
|
||||
::
|
||||
:: clay (4c), revision control
|
||||
::
|
||||
:: This is split in three top-level sections: structure definitions, main
|
||||
@ -834,7 +834,7 @@
|
||||
|= {pax+cage cay+cage}
|
||||
?. ?=($path-hash p.pax)
|
||||
~|(%patch-bad-path-mark !!)
|
||||
[-< -> +]:[((hard ,[path lobe]) q.q.pax) cay]
|
||||
[-< -> +]:[((hard {path lobe}) q.q.pax) cay]
|
||||
:: ~& %canned
|
||||
:: ~& %checking-out
|
||||
=. ank.dom (checkout-ankh:ze (mo cat))
|
||||
@ -2122,7 +2122,7 @@
|
||||
`[pax +.a]
|
||||
=. can.dal.dat p.can
|
||||
=. old.dal.dat
|
||||
%- mo ^- (list ,[path ~])
|
||||
%- mo ^- (list {path $~})
|
||||
%+ murn (~(tap by q.bas.dat))
|
||||
|= {pax+path lob+lobe}
|
||||
?. =(~ (~(get by q.ali.dat) pax))
|
||||
@ -2608,7 +2608,7 @@
|
||||
~
|
||||
?: =(0 let.dom.u.dos)
|
||||
=+ cos=(mode-to-soba ~ s.bem q.q.hic r.q.hic)
|
||||
=+ ^- [one=(list ,[path miso]) two=(list ,[path miso])]
|
||||
=+ ^- {one+(list {path miso}) two+(list {path miso})}
|
||||
%+ skid cos
|
||||
|= {a+path b+miso}
|
||||
?& ?=($ins -.b)
|
||||
|
276
arvo/dill.hoon
276
arvo/dill.hoon
@ -1,38 +1,38 @@
|
||||
::
|
||||
!:
|
||||
:: dill (4d), terminal handling
|
||||
::
|
||||
|= pit=vase
|
||||
|= pit+vase
|
||||
=> |% :: interface tiles
|
||||
++ gill (pair ship term) :: general contact
|
||||
-- ::
|
||||
=> |% :: console protocol
|
||||
++ all-axle ?(old-axle axle) ::
|
||||
++ old-axle :: all dill state
|
||||
$: %2 ::
|
||||
ore=(unit ship) :: identity once set
|
||||
hey=(unit duct) :: default duct
|
||||
dug=(map duct axon) :: conversations
|
||||
_: $2 ::
|
||||
ore+(unit ship) :: identity once set
|
||||
hey+(unit duct) :: default duct
|
||||
dug+(map duct axon) :: conversations
|
||||
== ::
|
||||
++ axle ::
|
||||
$: %3 ::
|
||||
ore=(unit ship) :: identity once set
|
||||
hey=(unit duct) :: default duct
|
||||
dug=(map duct axon) :: conversations
|
||||
$= hef :: other weights
|
||||
$: a=(unit mass) ::
|
||||
b=(unit mass) ::
|
||||
c=(unit mass) ::
|
||||
e=(unit mass) ::
|
||||
f=(unit mass) ::
|
||||
g=(unit mass) ::
|
||||
_: $3 ::
|
||||
ore+(unit ship) :: identity once set
|
||||
hey+(unit duct) :: default duct
|
||||
dug+(map duct axon) :: conversations
|
||||
_= hef :: other weights
|
||||
_: a+(unit mass) ::
|
||||
b+(unit mass) ::
|
||||
c+(unit mass) ::
|
||||
e+(unit mass) ::
|
||||
f+(unit mass) ::
|
||||
g+(unit mass) ::
|
||||
== ::
|
||||
== ::
|
||||
++ axon :: dill per duct
|
||||
$: ram=term :: console program
|
||||
tem=(unit (list dill-belt)) :: pending, reverse
|
||||
wid=_80 :: terminal width
|
||||
pos=@ud :: cursor position
|
||||
see=(list ,@c) :: current line
|
||||
_: ram+term :: console program
|
||||
tem+(unit (list dill-belt)) :: pending, reverse
|
||||
wid+__(80) :: terminal width
|
||||
pos+@ud :: cursor position
|
||||
see+(list @c) :: current line
|
||||
== ::
|
||||
-- => ::
|
||||
|% :: protocol below
|
||||
@ -41,118 +41,119 @@
|
||||
-- => ::
|
||||
|% :: protocol outward
|
||||
++ mess ::
|
||||
$% [%dill-belt p=(hypo dill-belt)] ::
|
||||
_% {$dill-belt p+(hypo dill-belt)} ::
|
||||
== ::
|
||||
++ move ,[p=duct q=(mold note gift)] :: local move
|
||||
++ note-ames :: weird ames move
|
||||
$% [%make p=(unit ,@t) q=@ud r=@ s=?] ::
|
||||
[%sith p=@p q=@uw r=?] ::
|
||||
_% {$make p+(unit @t) q+@ud r+@ s+?} ::
|
||||
{$sith p+@p q+@uw r+?} ::
|
||||
== ::
|
||||
++ note-clay ::
|
||||
$% [%merg p=@p q=@tas r=@p s=@tas t=case u=germ] :: merge desks
|
||||
[%warp p=sock q=riff] :: wait for clay, hack
|
||||
_% {$merg p+@p q+@tas r+@p s+@tas t+case u+germ} :: merge desks
|
||||
{$warp p+sock q+riff} :: wait for clay hack
|
||||
== ::
|
||||
++ note-dill :: note to self, odd
|
||||
$% [%crud p=@tas q=(list tank)] ::
|
||||
[%heft ~] ::
|
||||
[%init p=ship] ::
|
||||
[%text p=tape] ::
|
||||
[%veer p=@ta q=path r=@t] :: install vane
|
||||
[%vega p=path] :: reboot by path
|
||||
[%verb ~] :: verbose mode
|
||||
_% {$crud p+@tas q+(list tank)} ::
|
||||
{$heft $~} ::
|
||||
{$init p+ship} ::
|
||||
{$text p+tape} ::
|
||||
{$veer p+@ta q+path r+@t} :: install vane
|
||||
{$vega p+path} :: reboot by path
|
||||
{$verb $~} :: verbose mode
|
||||
== ::
|
||||
++ note-gall ::
|
||||
$% [%conf dock %load ship desk] ::
|
||||
[%deal p=sock q=cush] ::
|
||||
_% {$conf dock $load ship desk} ::
|
||||
{$deal p+sock q+cush} ::
|
||||
== ::
|
||||
++ note :: out request $->
|
||||
$? [?(%a %b %c %e %f %g) %wegh ~] ::
|
||||
$% [%a note-ames] ::
|
||||
[%c note-clay] ::
|
||||
[%d note-dill] ::
|
||||
[%g note-gall] ::
|
||||
_? {?($a $b $c $e $f $g) $wegh $~} ::
|
||||
_% {$a note-ames} ::
|
||||
{$c note-clay} ::
|
||||
{$d note-dill} ::
|
||||
{$g note-gall} ::
|
||||
== == ::
|
||||
++ sign-ames ::
|
||||
$% [%nice ~] ::
|
||||
[%init p=ship] ::
|
||||
_% {$nice $~} ::
|
||||
{$init p+ship} ::
|
||||
== ::
|
||||
++ sign-gall :: see %gall
|
||||
$% [%onto p=(unit tang)] ::
|
||||
_% {$onto p+(unit tang)} ::
|
||||
== ::
|
||||
++ sign-clay ::
|
||||
$% [%mere p=(each (set path) (pair term tang))] ::
|
||||
[%note p=@tD q=tank] ::
|
||||
[%writ p=riot] ::
|
||||
_% {$mere p+(each (set path) (pair term tang))} ::
|
||||
{$note p+@tD q+tank} ::
|
||||
{$writ p+riot} ::
|
||||
== ::
|
||||
++ sign-dill ::
|
||||
$% [%blit p=(list blit)] ::
|
||||
_% {$blit p+(list blit)} ::
|
||||
== ::
|
||||
++ sign-gall ::
|
||||
$% [%onto p=(each suss tang)] ::
|
||||
[%unto p=cuft] ::
|
||||
_% {$onto p+(each suss tang)} ::
|
||||
{$unto p+cuft} ::
|
||||
== ::
|
||||
++ sign :: in result $<-
|
||||
$? [?(%a %b %c %e %f %g) %mass p=mass] ::
|
||||
$% [%a sign-ames] ::
|
||||
[%c sign-clay] ::
|
||||
[%d sign-dill] ::
|
||||
[%g sign-gall] ::
|
||||
_? {?($a $b $c $e $f $g) $mass p+mass} ::
|
||||
_% {$a sign-ames} ::
|
||||
{$c sign-clay} ::
|
||||
{$d sign-dill} ::
|
||||
{$g sign-gall} ::
|
||||
== == ::
|
||||
:::::::: :: dill tiles
|
||||
--
|
||||
=| all=axle
|
||||
|= [now=@da eny=@ ski=sled] :: current invocation
|
||||
=| all+axle
|
||||
|= {now+@da eny+@ ski+sled} :: current invocation
|
||||
=> |%
|
||||
++ as :: per cause
|
||||
|_ $: [moz=(list move) hen=duct our=ship]
|
||||
|_ $^
|
||||
$: {moz+(list move) hen+duct our+ship}
|
||||
axon
|
||||
==
|
||||
++ abet :: resolve
|
||||
^- [(list move) axle]
|
||||
^- {(list move) axle}
|
||||
[(flop moz) all(dug (~(put by dug.all) hen +<+))]
|
||||
::
|
||||
++ call :: receive input
|
||||
|= kyz=kiss
|
||||
|= kyz+kiss
|
||||
^+ +>
|
||||
?+ -.kyz ~& [%strange-kiss -.kyz] +>
|
||||
%flow +>
|
||||
%harm +>
|
||||
%hail (send %hey ~)
|
||||
%belt (send `dill-belt`p.kyz)
|
||||
%text (from %out (tuba p.kyz))
|
||||
%crud :: (send `dill-belt`[%cru p.kyz q.kyz])
|
||||
$flow +>
|
||||
$harm +>
|
||||
$hail (send %hey ~)
|
||||
$belt (send `dill-belt`p.kyz)
|
||||
$text (from %out (tuba p.kyz))
|
||||
$crud :: (send `dill-belt`[%cru p.kyz q.kyz])
|
||||
(crud p.kyz q.kyz)
|
||||
%blew (send %rez p.p.kyz q.p.kyz)
|
||||
%heft heft
|
||||
%tick =+ ^= ges ^- gens
|
||||
$blew (send %rez p.p.kyz q.p.kyz)
|
||||
$heft heft
|
||||
$tick =+ ^= ges ^- gens
|
||||
^- gens
|
||||
:- %en
|
||||
=+ can=(clan p.kyz)
|
||||
?- can
|
||||
%czar [%czar ~]
|
||||
%duke [%duke %anon ~]
|
||||
%earl [%earl (scot %p p.kyz)]
|
||||
%king :- %king
|
||||
$czar [%czar ~]
|
||||
$duke [%duke %anon ~]
|
||||
$earl [%earl (scot %p p.kyz)]
|
||||
$king :- %king
|
||||
?: =(~doznec p.kyz) :: so old tickets work
|
||||
'Urban Republic'
|
||||
(scot %p p.kyz)
|
||||
%pawn [%pawn ~]
|
||||
$pawn [%pawn ~]
|
||||
==
|
||||
=+ yen=(scot %p (shax :(mix %ticket eny now)))
|
||||
=+ ^= beg ^- [his=@p tic=@p yen=@t ges=gens]
|
||||
=+ ^= beg ^- {his+@p tic+@p yen+@t ges+gens}
|
||||
[p.kyz q.kyz yen ges]
|
||||
=+ cmd=[%hood %poke `cage`[%helm-begin !>(beg)]]
|
||||
%= +>.$
|
||||
moz
|
||||
:_(moz [hen %pass ~ %g %deal [our our] cmd])
|
||||
==
|
||||
%veer (dump kyz)
|
||||
%vega (dump kyz)
|
||||
%verb (dump kyz)
|
||||
$veer (dump kyz)
|
||||
$vega (dump kyz)
|
||||
$verb (dump kyz)
|
||||
==
|
||||
::
|
||||
++ crud
|
||||
|= [err=@tas tac=(list tank)]
|
||||
|= {err+@tas tac+(list tank)}
|
||||
=+ ^= wol ^- wall
|
||||
:- (trip err)
|
||||
(zing (turn (flop tac) |=(a=tank (~(win re a) [0 wid]))))
|
||||
@ -161,33 +162,33 @@
|
||||
$(wol t.wol, +>.^$ (from %out (tuba i.wol)))
|
||||
::
|
||||
++ dump :: pass down to hey
|
||||
|= git=gift
|
||||
|= git+gift
|
||||
?> ?=(^ hey.all)
|
||||
+>(moz [[u.hey.all %give git] moz])
|
||||
::
|
||||
++ done :: return gift
|
||||
|= git=gift
|
||||
|= git+gift
|
||||
+>(moz :_(moz [hen %give git]))
|
||||
::
|
||||
++ from :: receive belt
|
||||
|= bit=dill-blit
|
||||
|= bit+dill-blit
|
||||
^+ +>
|
||||
?: ?=(%mor -.bit)
|
||||
?: ?=($mor -.bit)
|
||||
|- ^+ +>.^$
|
||||
?~ p.bit +>.^$
|
||||
$(p.bit t.p.bit, +>.^$ ^$(bit i.p.bit))
|
||||
?: ?=(%out -.bit)
|
||||
?: ?=($out -.bit)
|
||||
%+ done %blit
|
||||
:~ [%lin p.bit]
|
||||
[%mor ~]
|
||||
[%lin see]
|
||||
[%hop pos]
|
||||
==
|
||||
?: ?=(%pro -.bit)
|
||||
?: ?=($pro -.bit)
|
||||
(done(see p.bit) %blit [[%lin p.bit] [%hop pos] ~])
|
||||
?: ?=(%hop -.bit)
|
||||
?: ?=($hop -.bit)
|
||||
(done(pos p.bit) %blit [bit ~])
|
||||
?: ?=(%qit -.bit)
|
||||
?: ?=($qit -.bit)
|
||||
(dump %logo ~)
|
||||
(done %blit [bit ~])
|
||||
::
|
||||
@ -211,7 +212,7 @@
|
||||
=. tem ~
|
||||
=. moz :_(moz [hen %pass / %c %merg our %home our %base da/now %init])
|
||||
=. moz :_(moz [hen %pass ~ %g %conf [[our ram] %load our %home]])
|
||||
=. +> ?: ?=(%czar can) +>
|
||||
=. +> ?: ?=($czar can) +>
|
||||
(sync %base (sein our) %kids)
|
||||
=. +> (sync %home our %base)
|
||||
=. +> ?. ?=(?(%duke %king %czar) can) +>
|
||||
@ -223,7 +224,7 @@
|
||||
$(myt t.myt, +>+ (send i.myt))
|
||||
::
|
||||
++ into :: preinitialize
|
||||
|= gyl=(list gill)
|
||||
|= gyl+(list gill)
|
||||
%_ +>
|
||||
tem `(turn gyl |=(a=gill [%yow a]))
|
||||
moz
|
||||
@ -237,7 +238,7 @@
|
||||
==
|
||||
::
|
||||
++ send :: send action
|
||||
|= bet=dill-belt
|
||||
|= bet+dill-belt
|
||||
?^ tem
|
||||
+>(tem `[bet u.tem])
|
||||
%_ +>
|
||||
@ -252,7 +253,7 @@
|
||||
==
|
||||
::
|
||||
++ sync
|
||||
|= syn=[desk ship desk]
|
||||
|= syn+{desk ship desk}
|
||||
%_ +>.$
|
||||
moz
|
||||
:_ moz
|
||||
@ -277,50 +278,50 @@
|
||||
==
|
||||
::
|
||||
++ take :: receive
|
||||
|= sih=sign
|
||||
|= sih+sign
|
||||
^+ +>
|
||||
?- sih
|
||||
[?(%a %b %c %e %f %g) %mass *]
|
||||
{?($a $b $c $e $f $g) $mass *}
|
||||
(wegt -.sih p.sih)
|
||||
::
|
||||
[%a %nice *]
|
||||
{$a $nice *}
|
||||
:: ~& [%take-nice-ames sih]
|
||||
+>
|
||||
::
|
||||
[%a %init *]
|
||||
{$a $init *}
|
||||
+>(moz :_(moz [hen %give +.sih]))
|
||||
::
|
||||
[%c %mere *]
|
||||
?: ?=(%& -.p.sih)
|
||||
{$c $mere *}
|
||||
?: ?=($& -.p.sih)
|
||||
+>.$
|
||||
(mean >%dill-mere-fail< >p.p.p.sih< q.p.p.sih)
|
||||
::
|
||||
[%g %onto *]
|
||||
{$g $onto *}
|
||||
:: ~& [%take-gall-onto +>.sih]
|
||||
?- -.+>.sih
|
||||
%| (crud %onto p.p.+>.sih)
|
||||
%& (done %blit [%lin (tuba "{<p.p.sih>}")]~)
|
||||
{$|} (crud %onto p.p.+>.sih)
|
||||
{$&} (done %blit [%lin (tuba "{<p.p.sih>}")]~)
|
||||
==
|
||||
::
|
||||
[%g %unto *]
|
||||
{$g $unto *}
|
||||
:: ~& [%take-gall-unto +>.sih]
|
||||
?- -.+>.sih
|
||||
%coup ?~(p.p.+>.sih +>.$ (crud %coup u.p.p.+>.sih))
|
||||
%quit peer
|
||||
%reap ?~ p.p.+>.sih
|
||||
$coup ?~(p.p.+>.sih +>.$ (crud %coup u.p.p.+>.sih))
|
||||
$quit peer
|
||||
$reap ?~ p.p.+>.sih
|
||||
+>.$
|
||||
(dump:(crud %reap u.p.p.+>.sih) %logo ~)
|
||||
%diff pump:(from ((hard dill-blit) q:`vase`+>+>.sih))
|
||||
%doff !!
|
||||
$diff pump:(from ((hard dill-blit) q:`vase`+>+>.sih))
|
||||
$doff !!
|
||||
==
|
||||
::
|
||||
[%c %note *]
|
||||
{$c $note *}
|
||||
(from %out (tuba p.sih ' ' ~(ram re q.sih)))
|
||||
::
|
||||
[%c %writ *]
|
||||
{$c $writ *}
|
||||
init
|
||||
::
|
||||
[%d %blit *]
|
||||
{$d $blit *}
|
||||
(done +.sih)
|
||||
==
|
||||
::
|
||||
@ -332,16 +333,16 @@
|
||||
==
|
||||
::
|
||||
++ wegt
|
||||
|= [lal=?(%a %b %c %e %f %g) mas=mass]
|
||||
|= {lal+?($a $b $c $e $f $g) mas+mass}
|
||||
^+ +>
|
||||
=. hef.all
|
||||
?- lal
|
||||
%a ~?(?=(^ a.hef.all) %double-mass-a hef.all(a `mas))
|
||||
%b ~?(?=(^ b.hef.all) %double-mass-b hef.all(b `mas))
|
||||
%c ~?(?=(^ c.hef.all) %double-mass-c hef.all(c `mas))
|
||||
%e ~?(?=(^ e.hef.all) %double-mass-e hef.all(e `mas))
|
||||
%f ~?(?=(^ f.hef.all) %double-mass-f hef.all(f `mas))
|
||||
%g ~?(?=(^ g.hef.all) %double-mass-g hef.all(g `mas))
|
||||
$a ~?(?=(^ a.hef.all) %double-mass-a hef.all(a `mas))
|
||||
$b ~?(?=(^ b.hef.all) %double-mass-b hef.all(b `mas))
|
||||
$c ~?(?=(^ c.hef.all) %double-mass-c hef.all(c `mas))
|
||||
$e ~?(?=(^ e.hef.all) %double-mass-e hef.all(e `mas))
|
||||
$f ~?(?=(^ f.hef.all) %double-mass-f hef.all(f `mas))
|
||||
$g ~?(?=(^ g.hef.all) %double-mass-g hef.all(g `mas))
|
||||
==
|
||||
?. ?& ?=(^ a.hef.all)
|
||||
?=(^ b.hef.all)
|
||||
@ -358,12 +359,12 @@
|
||||
--
|
||||
::
|
||||
++ ax :: make ++as
|
||||
|= [hen=duct kyz=kiss] ::
|
||||
|= {hen+duct kyz+kiss} ::
|
||||
?~ ore.all ~
|
||||
=+ nux=(~(get by dug.all) hen)
|
||||
?^ nux
|
||||
(some ~(. as [~ hen u.ore.all] u.nux))
|
||||
?. ?=(%flow -.kyz) ~
|
||||
?. ?=($flow -.kyz) ~
|
||||
%- some
|
||||
%. q.kyz
|
||||
%~ into as
|
||||
@ -377,32 +378,33 @@
|
||||
--
|
||||
|% :: poke/peek pattern
|
||||
++ call :: handle request
|
||||
|= $: hen=duct
|
||||
hic=(hypo (hobo kiss))
|
||||
|= $^
|
||||
_: hen+duct
|
||||
hic+(hypo (hobo kiss))
|
||||
==
|
||||
^- [p=(list move) q=_..^$]
|
||||
^+ [p=*(list move) q=..^$]
|
||||
=> %= . :: XX temporary
|
||||
q.hic
|
||||
^- kiss
|
||||
?: ?=(%soft -.q.hic)
|
||||
:: ~& [%dill-call-soft (,@tas `*`-.p.q.hic)]
|
||||
?: ?=($soft -.q.hic)
|
||||
:: ~& [%dill-call-soft (@tas `*`-.p.q.hic)]
|
||||
((hard kiss) p.q.hic)
|
||||
?: (~(nest ut -:!>(*kiss)) | p.hic) q.hic
|
||||
~& [%dill-call-flub (,@tas `*`-.q.hic)]
|
||||
~& [%dill-call-flub (@tas `*`-.q.hic)]
|
||||
((hard kiss) q.hic)
|
||||
==
|
||||
?: ?=(%boot -.q.hic)
|
||||
?: ?=($boot -.q.hic)
|
||||
:_(..^$ [hen %pass ~ (note %a p.q.hic)]~)
|
||||
?: ?=(%flog -.q.hic)
|
||||
?: ?=($flog -.q.hic)
|
||||
:: ~& [%dill-flog +.q.hic]
|
||||
?: ?=([%crud %hax-init [%leaf *] ~] p.q.hic)
|
||||
?: ?=({$crud $hax-init {$leaf *} $~} p.q.hic)
|
||||
=+ him=(slav %p (crip p.i.q.p.q.hic))
|
||||
:_(..^$ ?~(hey.all ~ [u.hey.all %give %init him]~))
|
||||
?: ?=([%crud %hax-heft ~] p.q.hic)
|
||||
?: ?=({$crud $hax-heft $~} p.q.hic)
|
||||
:_(..^$ ?~(hey.all ~ [u.hey.all %slip %d %heft ~]~))
|
||||
:_(..^$ ?~(hey.all ~ [u.hey.all %slip %d p.q.hic]~))
|
||||
=. hey.all ?^(hey.all hey.all `hen)
|
||||
?: ?=(%init -.q.hic)
|
||||
?: ?=($init -.q.hic)
|
||||
:: ~& [%call-init hen]
|
||||
?: =(ore.all `p.q.hic)
|
||||
[[hen %give q.hic]~ ..^$]
|
||||
@ -420,30 +422,30 @@
|
||||
[moz ..^$]
|
||||
::
|
||||
++ doze
|
||||
|= [now=@da hen=duct]
|
||||
^- (unit ,@da)
|
||||
|= {now+@da hen+duct}
|
||||
^- (unit @da)
|
||||
~
|
||||
::
|
||||
++ load :: trivial
|
||||
|= old=all-axle
|
||||
?: ?=(%2 -.old)
|
||||
|= old+all-axle
|
||||
?: ?=($2 -.old)
|
||||
$(old [%3 ore hey dug ~ ~ ~ ~ ~ ~]:old)
|
||||
..^$(all old)
|
||||
:: |= old=* :: diable
|
||||
:: ..^$(ore.all `~zod)
|
||||
::
|
||||
++ scry
|
||||
|= [fur=(unit (set monk)) ren=@tas his=ship syd=desk lot=coin tyl=path]
|
||||
|= {fur+(unit (set monk)) ren+@tas his+ship syd+desk lot+coin tyl+path}
|
||||
^- (unit (unit cage))
|
||||
[~ ~]
|
||||
::
|
||||
++ stay all
|
||||
::
|
||||
++ take :: process move
|
||||
|= [tea=wire hen=duct hin=(hypo sign)]
|
||||
^- [p=(list move) q=_..^$]
|
||||
|= {tea+wire hen+duct hin+(hypo sign)}
|
||||
^+ [p=*(list move) q=..^$]
|
||||
?: =(~ ore.all)
|
||||
?: ?=([%a %init *] q.hin)
|
||||
?: ?=({$a $init *} q.hin)
|
||||
:: ~& [%take-init hen]
|
||||
=. hey.all ?^(hey.all hey.all `hen)
|
||||
[[[hen %give +.q.hin] ~] ..^$]
|
||||
|
Loading…
Reference in New Issue
Block a user