1# 1c: molds and mold builders
6Atom representing a blocksize, by convention expressed as a power of 2.
11 ++ bloq @ :: blockclass
16 > :: ++met measures how many bloqs long an atom is
19 > :: 256 is 2 bloqs of 2^3
25Mold of fork between two
27mold generator: produces a dicriminated fork between two types.
33 |* {a/$-(* *) b/$-(* *)} :: either a or b
34 $%({$& p/a} {$| p/b}) :: a default
41 ?({$.y p/@t} {$.n p/@da})
49A core with one arm, `$`--the empty name--which transforms a sample noun into a product
50noun. If used dryly as a type, the subject must have a sample type of `*`.
56 ++ gate $-(* *) :: general gate
62See also: `++lift`, `++cork`
65 <1.ybc {* <110.jyx 1.ztu $151>}>
66 <1.ybc {* <110.jyx 1.ztu $151>}>
68 > (`gate`|=(a/* [a 'b']) 1)
78mold generator. `++list` generates a mold of a null-termanated list of a
85 ++ list |* a/$-(* *) :: null-term list
86 $@($~ {i/a t/(list a)}) ::
92See also: `++turn`, `++snag`
106`++lone` puts face of `p` on something.
113 ++ lone |*(a/$-(* *) p/a) :: just one thing
120mold generator. Produces a tuple of two of the types passed in.
126 ++ pair |*({a/$-(* *) b/$-(* *)} {p/a q/b}) :: just a pair
143A `++list` without the faces `i` and `t`.
148 ++ pole |* a/$-(* *) :: nameless list
149 $@($~ {a (pole a)}) ::
156 > `(pole char)`"asdf"
157 [~~a [~~s [~~d [~~f ~]]]]
166A `++qual` is a tuple of four of the types passed in.
171 ++ qual |* {a/$-(* *) b/$-(* *) c/$-(* *) d/$-(* *)} :: just a quadruple
177 > *(qual date time tape cord)
178 [p=[[a=%.y y=0] m=0 t=[d=0 h=0 m=0 s=0 f=~]] q=~292277024401-.1.1 r="" s='']
187A trap is a core with one arm `++$`.
192 ++ trap |*(a/_* _|?(*a)) :: makes perfect sense
199 <1.mws 101.jzo 1.ypj %164>
212A `++tree` can be empty, or contain a node of a type and
213left/right sub `++tree` of the same type. Pretty-printed with `{}`.
218 ++ tree |* a/$-(* *) :: binary tree
219 $@($~ {n/a l/(tree a) r/(tree a)}) ::
225 > `(tree {@ tape})`[[1 "hi"] [[2 "bye"] ~ ~] ~]
235`++mold` of the tuple of the three types passed in.
240 ++ trel |* {a/$-(* *) b/$-(* *) c/$-(* *)} :: just a triple
257mold generator. A `++unit` is either `~` or `[~ u=a]` where `a` is the
258type that was passed in.
264 ++ unit |* a/$-(* *) :: maybe
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list