2title = "2a: Unit Logic"
9[`Unit`](@/docs/hoon/reference/stdlib/1c.md#unit) as argument
11Applies a function `b` that produces a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) to the unwrapped value of [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)
12`a` (`u.a`). If `a` is empty, `~` is produced.
16`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
18`b` is a function that accepts a [`noun`](@/docs/glossary/noun.md) and produces a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
22A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
28 |* [a=(unit) b=$-(* (unit))]
36 > (biff (some 5) |=(a=@ (some (add a 2))))
39 > (biff ~ |=(a=@ (some (add a 2))))
47Non-unit function to [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit), producing [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)
49Applies a function `b` to the value (`u.a`) of a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `a`, producing
50a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit). Used when you want a function that does not accept or produce a
51[`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) to both accept and produce a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
55`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
61A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
76 > (bind ((unit @) [~ 97]) ,@t)
79 > =a |=(a=@ (add a 1))
80 > (bind ((unit @) [~ 2]) a)
90Replaces an empty [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `b` with the product of a called [`trap`](@/docs/glossary/trap.md)
91`a`. If the [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) is not empty, then the original [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) is produced.
95`a` is a [`trap`](@/docs/glossary/trap.md).
97`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
101Either the product of `a` or the value inside of [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `b`.
118 > ((bond |.((bex 10))) ~)
121 > ((bond |.((bex 10))) (slaw %ud '123'))
129Group [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) values into pair
131Produces `~` if either `a` or `b` are empty. Otherwise, produces a
132[`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) whose value is a cell of the values of two input [`units`](@/docs/hoon/reference/stdlib/1c.md#unit) `a` and
137`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
139`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
143A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) of the two initial values.
149 |* [a=(unit) b=(unit)]
158 > (both (some 1) (some %b))
168Apply function to two [`units`](@/docs/hoon/reference/stdlib/1c.md#unit)
170Applies a binary function `c`--which does not usually accept or produce a
171[`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)-- to the values of two [`units`](@/docs/hoon/reference/stdlib/1c.md#unit), `a` and `b`, producing a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
175`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
177`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
179`c` is a function that performs a binary operation.
183A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
189 |* [a=(unit) b=(unit) c=_|=(^ +<-)]
198 > =u ((unit @t) [~ 'a'])
199 > =v ((unit @t) [~ 'b'])
200 > (clap u v |=([a=@t b=@t] (welp (trip a) (trip b))))
203 > =a ((unit @u) [~ 1])
204 > =b ((unit @u) [~ 2])
205 > =c |=([a=@ b=@] (add a b))
215[`Unit`](@/docs/hoon/reference/stdlib/1c.md#unit) to list
217Makes a [`++list`](@/docs/hoon/reference/stdlib/1c.md#list) of the unwrapped value (`u.a`) of a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `a`.
221`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
239 > =a ((unit @) [~ 97])
252Give [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) a default value
254Produces a default value `b` for a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `a` in cases where `a` is null.
258`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
260`b` is a [`noun`](@/docs/glossary/noun.md) that's used as the default value.
264Either a [`noun`](@/docs/glossary/noun.md) `b` or the unwrapped value of [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `a`.
288Accepts a `++gate` `a` and produces a function that accepts [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)
289`b` to which it applies `a`. Used when you want a function that does not accept
290or produce a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) to both accept and produce a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
296`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
300A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
305 ++ lift :: lift gate (fmap)
307 |* b=(unit) :: curried
314 > ((lift dec) `(unit @)`~)
317 > ((lift dec) `(unit @)`[~ 20])
327Accepts two [`units`](@/docs/hoon/reference/stdlib/1c.md#unit) `a` and `b` whose values are expected to be
328equivalent. If either is empty, then the value of the other is produced.
329If neither are empty, it asserts that both values are the same and
330produces that value. If the assertion fails, `++mate` crashes with
331`'mate'` in the stack trace.
335`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
337`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
341A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) or crash.
347 |* [a=(unit) b=(unit)]
350 ?.(=(u.a u.b) ~|('mate' !!) a)
356 > =a ((unit @) [~ 97])
357 > =b ((unit @) [~ 97])
361 > =a ((unit @) [~ 97])
366 > =a ((unit @) [~ 97])
367 > =b ((unit @) [~ 98])
377Unwrap [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)
379Retrieve the value from a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) and crash if the [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) is null.
383`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
387Either the unwrapped value of `a` (`u.a`), or crash.
401 > =a ((unit [@t @t]) [~ ['a' 'b']])
405 > =a ((unit @ud) [~ 17])
418Wrap value in a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)
420Takes any [`noun`](@/docs/glossary/noun.md) `a` and produces a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) with the value set to `a`.
424`a` is a [`noun`](@/docs/glossary/noun.md).
428A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
433 ++ some :: lift (pure)
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