This reverts commit 8e1e40d75b3ab15c194b6bf9570f3edc46e2de58. This reverts commit f073c490f9fd7c5abc033af4857df92229877de7. This reverts commit f187d2d7e01a54823f3e979af9bbd148b398e7e9. This reverts commit bc272862a73cfce1b118586ca39d3a377d841f1b. This reverts commit 30a397513f8890a3406dc7ab91c6e067e3bbfbbb. This reverts commit 4fc6856fb50d88c20a0f533392ca606641c5f38f. Conflicts: urb/urbit.pill urb/zod/base/lib/drum.hoon
1.2 KiB
bar | %bar
Core construction
The |
runes construct cores. In the broadest case you can think of
a core as similar to an object with named properties that can contain
either functions or data.
The |
runes accept an associative array of names (++term) to
(++foot), each pair of which are called an ++arm, producing one
of the three basic categories of core.
The natural, generic core:
|%
Generic core, with [++arms] generally containing ++twigs
Doors, generic core with a sample:
Gates:
Cores with one arm [$
], the empty name and which takes a sample
p
. The closest thing in Hoon to a function.
|=
dry
gate, where the sample is typechecked at compile
time. |*
wet
gate, where the sample is typechecked at
runtime against its product type.
Traps:
Traps reduce to a |%
with one arm $
, the empty name. A trap is just
some computation that has been put inside of a wrapper so that it may be
passed around.
|.
Generic trap. |-
Trap automatically [kick]ed (called)
after construction.