Merge remote-tracking branch 'urbit/master'

This commit is contained in:
Steve Dee 2014-01-30 09:34:45 -08:00
commit b3b2c56603
3 changed files with 179 additions and 3 deletions

165
arvo/test.hoon Normal file
View File

@ -0,0 +1,165 @@
!::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::: :::::: Preface ::::::
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
?> ?=(@ .) :: atom subject
%. . :: fun with subject
|= cud=@ :: call it cud
=- (mul:all 2 cud) :: multiply by 2
^= all :: assemble engine
=~ :: volume stack
%164 :: version constant
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::: :::::: volume 0, version stub ::::::
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
~% %k.164 ~ ~ ::
|% ::
++ stub 164 :: version stub
-- ::
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::: :::::: volume 1, Hoon models ::::::
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
~% %mood
+
~
|% ::
++ axis ,@ :: tree address
-- ::
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::: :::::: volume 2, Hoon libraries and compiler ::::::
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
~% %hoon
+
==
%dec dec
==
|%
::::::::::::::::::::::::::::::::::::::::::::::::::::: ::
:::: chapter 2a, basic unsigned math ::::
:: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
++ add :: add
~/ %add
|= [a=@ b=@]
^- @
?: =(0 a)
b
$(a (dec a), b +(b))
::
++ cap :: tree head
~/ %cap
|= a=@
^- ?(%2 %3)
?- a
%2 %2
%3 %3
?(%0 %1) !!
* $(a (div a 2))
==
::
++ dec :: decrement
~/ %dec
|= a=@
?< =(0 a)
=+ b=0
|- ^- @
?: =(a +(b))
b
$(b +(b))
::
++ div :: divide
~/ %div
|= [a=@ b=@]
^- @
?< =(0 b)
=+ c=0
|-
?: (lth a b)
c
$(a (sub a b), c +(c))
::
++ gte :: greater-equal
~/ %gte
|= [a=@ b=@]
^- ?
!(lth a b)
::
++ gth :: greater-than
~/ %gth
|= [a=@ b=@]
^- ?
!(lte a b)
::
++ lte :: less-equal
~/ %lte
|= [a=@ b=@]
|(=(a b) (lth a b))
::
++ lth :: less-than
~/ %lth
|= [a=@ b=@]
^- ?
&(!=(a b) |-(|(=(0 a) &(!=(0 b) $(a (dec a), b (dec b))))))
::
++ mas :: tree body
~/ %mas
|= a=@
^- @
?- a
1 !!
2 1
3 1
* (add (mod a 2) (mul $(a (div a 2)) 2))
==
::
++ max :: maximum
~/ %max
|= [a=@ b=@]
^- @
?: (gth a b)
a
b
::
++ min :: minimum
~/ %min
|= [a=@ b=@]
^- @
?: (lth a b)
a
b
::
++ mod :: remainder
~/ %mod
|= [a=@ b=@]
^- @
?< =(0 b)
(sub a (mul b (div a b)))
::
++ mul :: multiply
~/ %mul
|= [a=@ b=@]
^- @
=+ c=0
|-
?: =(0 a)
c
$(a (dec a), c (add b c))
::
++ peg :: tree connect
~/ %peg
|= [a=@ b=@]
^- @
?- b
1 a
2 (mul a 2)
3 +((mul a 2))
* (add (mod b 2) (mul $(b (div b 2)) 2))
==
::
++ sub :: subtract
~/ %sub
|= [a=@ b=@]
^- @
?: =(0 b)
a
$(a (dec a), b (dec b))
--
. ==

12
try/bin/till.hoon Normal file
View File

@ -0,0 +1,12 @@
!:
:: /=try=/bin/till/hoon
::
=> .(- `[who=@p how=path]`-)
|= [est=time eny=@uw]
|= [pax=path ~]
^- bowl
=+ gen=(reck pax)
=+ ken=q:(~(mint ut %noun) %noun gen)
=+ pac=(jam ken)
:_ ~ :_ ~
[%xx %save [%test %pill ~] pac]

View File

@ -1,9 +1,8 @@
!: :: To write a trivial Hoon program
|= * ::
|= [a=@ ~] :: For educational purposes only
|= [x=@ ~] :: For educational purposes only
:_ ~ :_ ~ ::
:- %$ :: Preserve this mysterious boilerplate square
!> ::
::::::::::::::::: Produce a value below
(add 2 a)
(add 2 x)