Integrated but not compiling.

This commit is contained in:
C. Guy Yarvin 2016-10-06 15:52:13 -07:00
parent 83de18e6c3
commit 5a33bdc64a

View File

@ -559,25 +559,11 @@
:: planets, a (set) is kind of lame... :: planets, a (set) is kind of lame...
:::: ::::
|_ a/pile |_ a/pile
:: :: ++uni:py :: :: ++dif:py
++ uni :: merge two piles ++ dif :: add/remove a->b
|= b/pile |= b/pile
^- pile ^- (pair pile pile)
?~ b a [(sub(a b) a) (sub b)]
?~ a b
?. (vor p.n.a p.n.b) $(a b, b a)
?: (lth +(q.n.b) p.n.a)
$(b r.b, l.a $(a l.a, r.b ~))
?: (lth +(q.n.a) p.n.b)
$(b l.b, r.a $(a r.a, l.b ~))
?: =(n.a n.b) [n.a $(a l.a, b l.b) $(a r.a, b r.b)]
?: (lth p.n.a p.n.b)
?: (gth q.n.a q.n.b)
$(b l.b, a $(b r.b))
$(b l.b, a $(b r.b, a $(b r.a, r.a ~, q.n.a q.n.b)))
?: (gth q.n.a q.n.b)
$(a l.a, b $(a r.a, b $(a r.b, r.b ~, q.n.b q.n.a)))
$(a l.a, b $(a r.a))
:: :: ++div:py :: :: ++div:py
++ div :: allocate ++ div :: allocate
|= b/@ud |= b/@ud
@ -605,30 +591,26 @@
$| [%| :(add top p.al p.ar)] $| [%| :(add top p.al p.ar)]
== ==
== ==
:: :: ++dif:py ::
++ dif :: add/remove a->b ++ gas :: ++gas:py
|= b/pile |= b/(list ship) ^- pile :: insert list
^- (pair pile pile)
[(sub(a b) a) (sub b)]
::
++ sub
|= b/pile ^- pile
?~ b a ?~ b a
?~ a a $(b t.b, a (put i.b))
?: (gth p.n.a q.n.b) :: :: ++gud:py
$(b r.b, l.a $(a l.a, r.b ~)) ++ gud :: validate
?: (lth q.n.a p.n.b) =| {bot/(unit ship) top/(unit ship)}
$(b l.b, r.a $(a r.a, l.b ~)) |- ^- ?
%- uni(a $(a l.a, r.b ~)) ?~ a &
%- uni(a $(a r.a, l.b ~)) ?& (lte p.n.a q.n.a)
?: (gte p.n.a p.n.b) ?~(top & (lth +(q.n.a) u.top))
?: (lte q.n.a q.n.b) ?~(bot & (gth p.n.a +(u.bot)))
~ ::
$(b r.b, a [[+(q.n.b) q.n.a] ~ ~]) ?~(l.a & (vor p.n.a p.n.l.a))
?: (lte q.n.a q.n.b) $(a l.a, top `p.n.a)
$(b l.b, a [[n.a(q (min q.n.a (dec p.n.b)))] ~ ~]) ::
%- uni(a $(b r.b, a [[+(q.n.b) q.n.a] ~ ~])) ?~(l.a & (vor p.n.a p.n.l.a))
$(b l.b, a [[n.a(q (min q.n.a (dec p.n.b)))] ~ ~]) $(a r.a, bot `q.n.a)
==
:: :: ++int:py :: :: ++int:py
++ int :: intersection ++ int :: intersection
|= b/pile ^- pile |= b/pile ^- pile
@ -649,37 +631,54 @@
[n.b(q q.n.a) ~ ~] [n.b(q q.n.a) ~ ~]
%- uni(a $(l.a ~, b r.b)) %- uni(a $(l.a ~, b r.b))
[n.b ~ ~] [n.b ~ ~]
:: :: :: ++put:py
:: ++ put :: insert
++ put
|= b/ship ^- pile |= b/ship ^- pile
(uni [b b] ~ ~) (uni [b b] ~ ~)
:: :: :: ++sub:py
++ gas ++ sub :: subtract
|= b/(list ship) ^- pile |= b/pile ^- pile
?~ b a ?~ b a
$(b t.b, a (put i.b)) ?~ a a
?: (gth p.n.a q.n.b)
$(b r.b, l.a $(a l.a, r.b ~))
?: (lth q.n.a p.n.b)
$(b l.b, r.a $(a r.a, l.b ~))
%- uni(a $(a l.a, r.b ~))
%- uni(a $(a r.a, l.b ~))
?: (gte p.n.a p.n.b)
?: (lte q.n.a q.n.b)
~
$(b r.b, a [[+(q.n.b) q.n.a] ~ ~])
?: (lte q.n.a q.n.b)
$(b l.b, a [[n.a(q (min q.n.a (dec p.n.b)))] ~ ~])
%- uni(a $(b r.b, a [[+(q.n.b) q.n.a] ~ ~]))
$(b l.b, a [[n.a(q (min q.n.a (dec p.n.b)))] ~ ~])
:: ::
++ tap ++ tap
=| out/(list (pair ship ship)) =| out/(list (pair ship ship))
|- ^+ out |- ^+ out
?~ a out ?~ a out
$(a l.a, out [n.a $(a r.a)]) $(a l.a, out [n.a $(a r.a)])
:: :: ++gud:py :: :: ++uni:py
++ gud :: validate ++ uni :: merge two piles
=| {bot/(unit ship) top/(unit ship)} |= b/pile
|- ^- ? ^- pile
?~ a & ?~ b a
?& (lte p.n.a q.n.a) ?~ a b
?~(top & (lth +(q.n.a) u.top)) ?. (vor p.n.a p.n.b) $(a b, b a)
?~(bot & (gth p.n.a +(u.bot))) ?: (lth +(q.n.b) p.n.a)
:: $(b r.b, l.a $(a l.a, r.b ~))
?~(l.a & (vor p.n.a p.n.l.a)) ?: (lth +(q.n.a) p.n.b)
$(a l.a, top `p.n.a) $(b l.b, r.a $(a r.a, l.b ~))
:: ?: =(n.a n.b) [n.a $(a l.a, b l.b) $(a r.a, b r.b)]
?~(l.a & (vor p.n.a p.n.l.a)) ?: (lth p.n.a p.n.b)
$(a r.a, bot `q.n.a) ?: (gth q.n.a q.n.b)
== $(b l.b, a $(b r.b))
$(b l.b, a $(b r.b, a $(b r.a, r.a ~, q.n.a q.n.b)))
?: (gth q.n.a q.n.b)
$(a l.a, b $(a r.a, b $(a r.b, r.b ~, q.n.b q.n.a)))
$(a l.a, b $(a r.a))
-- --
:: :: ++ry :: :: ++ry
:::: ## 3.b :: rights algebra :::: ## 3.b :: rights algebra