urbit/base/pub/doc/hoon/runes/cl/clhp.md
Anton Dyudin 6cbb6b060d Revert "remove docs for demo", "remove odds and ends", "demo network", "DEMO ONLY: root beak as %demo.", "DEMO ONLY: don't show doznec flapping.", "Prinrtf."
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
2015-06-15 18:10:02 -07:00

1.4 KiB

colhep, :-, %clhp

Cell

:-, colhep, [%clhp p=twig q=twig] is a synthetic rune that produces the cell [p q].

Produces

Twig: [%clhp p=twig q=twig]

Sample

p is a twig. q is a twig.

Tall form

:-  p
    q

Wide form

:-(p q)

Irregular form

[p q]

Examples

~zod/try=> :-(1 2)
[1 2]
~zod/try=> :-  'a'
           %b
['a' %b]

This is the most straightforward case of :-, producing a cell of static data in either tall or wide form.

/~zod/try=> 
    :-  (add 2 2)
    |-  (div 4 2)
[4 2]

Most commonly :- helps to organize code, allowing you to produce a cell from nested computation.

Some obscure :- irregular forms.

Moveme: irregular form doc

Infix ^

~zod/main=/app> 1^2^3
[1 2 3]

a^b is equivalent to :- a b

Infix /

~zod/main=/app> a/1
[%a 1]
~zod/main=/app> a/'twig'
[%a 'twig']

Like ^, but first item must be a term, and is cubed. Used to construct paths and fronds.

Prefix `, postfix ~

~zod/main=/app> ````20
[~ ~ ~ ~ 20]
~zod/main=/app> [42 30]~
[[42 30] ~]

Complimenting each other, these construct pairs with nil in the head and tail respectively. Multiple postfix ~ do not work for unknown reasons.