diff --git a/main/pub/src/doc/ref/vol2.md b/main/pub/src/doc/ref/vol2.md index 26124b862..4a1313566 100644 --- a/main/pub/src/doc/ref/vol2.md +++ b/main/pub/src/doc/ref/vol2.md @@ -508,6 +508,7 @@ A default value `b` for the unit `a` when `a` is null 0 ##++lift + Fmap; Accept a gate that accepts and produces an unwrapped value and pass it a unit value, then produce a unit value. @@ -556,13 +557,13 @@ Retrieve the value from a unit and crash if the unit is null. ####Summary Build wet %gold gate with sample unit `a` of any type. - If: `p` is null, - Then: fail, - Else: produce `u.a`, the value of the unit. + If: `p` is null, + Then: fail, + Else: produce `u.a`, the value of the unit. ####Examples - ~zod/try=> =a ((unit ,[@t @t]) [~ ['a' 'b']]) + ~zod/try=> =a ((unit ,[@t @t]) [~ ['a' 'b']]) ~zod/try=> (need a) ['a' 'b'] ~zod/try=> =a ((unit ,@ud) [~ 17]) @@ -629,7 +630,8 @@ Homogenizes a lists' type information. Terminates the core. Produces list a. -####Examples: +####Examples + ~palryp-hocsyt/try=> lyst [i=1 t=[i=97 t=[i=2 t=[i=98 t=[i=[~ u=10] t=~]]]]] ~palryp-hocsyt/try=> (homo lyst) @@ -802,6 +804,7 @@ Left fold - Move left to right recursively slamming a binary gate with an elemen 0 ##++skid + Seperate a list `a` into two lists - Those elements of `a` who produce true when slammed to `b` and those who produce false. ####Summary @@ -873,7 +876,8 @@ Produces the sublist of `a` whose elments produce false when slammed with `b`. Accepts an atom `a` and list `b`, producing the first `a` elements of the front of the list. -####Summary: +####Summary + Activate jet. Build wet %gold gate with sample atom `a` and list `b`. Kick dry %gold trap. @@ -937,7 +941,7 @@ Accepts an atom `a` and list `b`, producing the last `a` elements from the back ~palryp-hocsyt/try=> (snag 4 (limo [1 2 3 4 5 6 7 8 ~])) 5 -####+sort +##++sort Accepts a list `a` and a gate `b` with a sample which accepts two nouns and produces a loobean. 'sort' then produces a list of the elements of 'a' sorted according to 'b'. @@ -966,14 +970,14 @@ list of the elements of 'a' sorted according to 'b'. ##++swag - A range in a list - Produces the values in list 'c' starting at index 'a' and spanning 'b' elements - more than that. +A range in a list - Produces the values in list 'c' starting at index 'a' and spanning 'b' elements +more than that. ####Summary - Build wet %gold gate with cell sample that accepts a cell of atoms, `a` and `b`, and a list `c`. - The last `a` elements in `c` are slammed to slag. - Scag is slammed with the atom `b`and the list just produced by slag. +Build wet %gold gate with cell sample that accepts a cell of atoms, `a` and `b`, and a list `c`. +The last `a` elements in `c` are slammed to slag. +Scag is slammed with the atom `b`and the list just produced by slag. ####Examples: @@ -988,16 +992,16 @@ list of the elements of 'a' sorted according to 'b'. ##++turn - Accepts a list and a gate. Produces the list with the gate applied to each element of the original list. +Accepts a list `a` and a gate `b`. Produces the list with the gate applied to each element of the original list. ####Summary Activate jet. - Build wet %gold gate that accepts a list and a gate. - Creates and kicks a dry %gold trap. - Builds an if-then-else statement on "a is an atom." - If so, produce null. - Else, produce the tuple with head (b i.a) and tail that is turn applied recursively to the tail of 'a'. + Build wet %gold gate with samples of list `a` and gate `b`. + Kicks a dry %gold trap. + If: `a` is an atom, + Then: produce null. + Else: produce the tuple with head (b i.a) and the toss of `a` for `t.a`. ####Examples @@ -1006,7 +1010,7 @@ list of the elements of 'a' sorted according to 'b'. ##++weld - Concatenates two lists. +Concatenates two lists. ####Summary @@ -1014,61 +1018,72 @@ list of the elements of 'a' sorted according to 'b'. Build wet %gold gate that accepts two lists, `a` and `b`. Homogenizes both lists and makes them the subject of the following code. Kick dry %gold trap. - Cast the resulting list to the type of list `b`. - on "a is null." If so, produce 'b'. - Else, produce the tuple [i.a $(a t.a)]. 'i.a' is the head of 'a', $(a t.a) the recursive call of weld - with 'a' replaced by the tail of a. - Examples: + Cast the resulting list to the type of list `b`. + If: a is null, + Then: produce `b`. + Else: produce the tuple where `i.a` is the head, and the toss of `a` for `i.a` is the tail. + +####Examples: + ~palryp-hocsyt/try=> (weld (limo [1 2 3 ~]) (limo [4 5 6 ~])) ~[1 2 3 4 5 6] ~palryp-hocsyt/try=> (weld "foo" "bar") ~[~~f ~~o ~~o ~~b ~~a ~~r] -++ welp - perfect weld - Description: - Concatenates two lists without losing their type information to homogenization. - Produces a tape when passed two tapes. - --- - XXX DON'T WORRY ABOUT HOW THIS WORKS, IT IS A PERPETUAL MIYSTERY TO US ALL. XXX - Examples: + +##++welp + +Concatenate two lists without losing their type information to homogenization. +Produces a tape when passed two tapes. + +####Summary + + Identical to the internals of `++weld`, except it does not implement the list homogenization. + You probably don't need to understand it right now. + +####Examples: + ~palryp-hocsyt/try=> (welp "foo" "bar") "foobar" -++ wild - concatenate - Description: - Concatenates two lists without casting the product back to a list. - --- - Creates a wet %gold gate with a sample which accepts two lists. - Homogenizes both lists and makes them the subject of the following code. - A dry %gold gate is created and kicked. - Builds an if-then-else statement on "a is null." If so, produce 'b'. - Else, produce the tuple with head (b i.a) and tail that is turn applied recursively to the tail of 'a'. - Examples: + +##++wild + +Concatenate two lists without casting the product back to a list. + + Build wet %gold gate with two list sample, labeled `a`, `b`, respectively. + Homogenize both lists and make them the subject of the following code. + Build dry %gold gate. + If `a` is null, + Then: produce `b`. + Else: produce the tuple where `i.a` is the head, and the toss of `a` for `i.a` is the tail. + +####Examples: + ~palryp-hocsyt/try=> =norm (limo [1 2 3 4 5 ~]) ~palryp-hocsyt/try=> =norm2 (limo [6 7 8 ~]) ~palryp-hocsyt/try=> (wild norm norm2) ~[1 2 3 4 5 6 7 8] - --- ~palryp-hocsyt/try=> (wild "foo" "bar") ~[~~f ~~o ~~o ~~b ~~a ~~r] - --- ~palryp-hocsyt/try=> (homo (weld "foo" "bar")) ~[~~f ~~o ~~o ~~b ~~a ~~r] ~palryp-hocsyt/try=> (homo (wild "foo" "bar")) ! -find-limb.t ! find-fork ! exit -++ zing - promote - Description: - Turns a list of lists into a single list by promoting the elements of each sublist into the higher. - --- +##++zing + +Turns a list of lists into a single list by promoting the elements of each sublist into the higher. + +####Summary + Creates a wet %gold gate with a sample that accepts a list of lists. Casts the result to the type the homogenized list head, asserting that 'a' is at least a cell. A dry %gold trap is created and kicked. Builds an if-then-else statement on "a is null." If so, produce null. Else, weld together the head of a with the recrusive call of zing on the tail of a. - Examples: + +####Examples: + ~palryp-hocsyt/try=> (zing (limo [(limo ['a' 'b' 'c' ~]) (limo ['e' 'f' 'g' ~]) (limo ['h' 'i' 'j' ~]) ~])) ~['a' 'b' 'c' 'e' 'f' 'g' 'h' 'i' 'j'] ~palryp-hocsyt/try=> (zing (limo [(limo [1 'a' 2 'b' ~]) (limo [3 'c' 4 'd' ~]) ~])) @@ -1076,7 +1091,7 @@ list of the elements of 'a' sorted according to 'b'. chapter 2c, simple noun surgery -section 2cA, bit surgery **capitalization of "section" inconsistent in source** +section 2cA, bit surgery ##++bex @@ -1099,74 +1114,74 @@ Produces 2 to the nth power for some atom `n`. 1.048.576 ~palryp-hocsyt/try=> (bex 0) 1 -++ xeb - binary logarithm +##++xeb + +Takes the base-2 logarithm of an atom. - Takes the base-2 logarithm of an atom. - --- - Creates a dry %gold gate with a sample which accepts an atom. + Build dry %gold gate with sample atom `a` Casts the result to an atom. - Evaluates the logarithm by counting the number of bits the number in question occupies. - Examples: + Evaluates the logarithm by using `++met` to count the number of bits the number in question occupies. + +####Examples: + ~palryp-hocsyt/try=> (xeb 31) 5 - -- ~palryp-hocsyt/try=> (xeb 32) 6 - -- ~palryp-hocsyt/try=> (xeb 49) 6 - -- ~palryp-hocsyt/try=> (xeb 0) 0 - -- ~palryp-hocsyt/try=> (xeb 1) 1 - -- ~palryp-hocsyt/try=> (xeb 2) 2 -++ can - assemble - Description: - Assembles a - --- + +##++can + +Assembles an atom. + +####Summary + Activate jet. - Creates a dry %gold gate with a sample which accepts a bloq size (an atom) and - a list of atomic tuples. - Casts the result to an atom. - Builds an if-then-else statement on "b is null." - If so, produce 0. - Else, - Examples: + Build dry %gold gate with a sample with bloq (atom) size `a`, and a list of cells of two atoms, `b`. + Yield an atom. + If: `b` is null. + Then: produce 0. + Else: call `++mix` with both the product of `++end` slammed with `a`, `p.i.b`, and + `q.i.b`, and the product of `++lsh` slammed with `a`, `p.i.b`, and the toss of + `b` for `t.b`. + +####Examples: + ~ronrem-lonsem/try=> `@ub`(can 3 ~[[1 1]]) 0b1 - --- ~ronrem-lonsem/try=> `@ub`(can 0 ~[[1 255]]) 0b1 - --- ~ronrem-lonsem/try=> `@ub`(can 1 ~[[1 2]]) 0b10 - --- ~ronrem-lonsem/try=> `@ub`(can 1 ~[[1 3]]) 0b11 - --- ~ronrem-lonsem/try=> `@ub`(can 1 ~[[1 4]]) 0b0 - --- ~ronrem-lonsem/try=> `@ub`(can 1 ~[[2 4]]) 0b100 -++ cat - concatenate - Description: - Concatenates two atoms, obeying the given block size. - --- + +##++cat + +Concatenates two atoms, obeying the given block size. + +####Summary + Activate jet. - Creates a dry %gold gate with a sample which accepts a bloq size (an atom) and - two atoms. - Measures the number of blocks of size 'a' are in 'b'. - Left shifts 'c' that many times the bock size of 'a'. - Sums the result of the left shift with 'b'. - Examples: + Build dry %gold gate with sample which accepts a bloq (atom) size `a` and + two atoms, `b` and `c`. + Use `++met` to measure the number of blocks of size `a` in `b`. + Left shift `c` by the number of blocks measured above, using block size `a`. + Sums the result of the left shift above with `b`. + +####Examples: + ~ronrem-lonsem/try=> `@ub`(cat 1 1 0) 0b1 ~ronrem-lonsem/try=> `@ub`(cat 2 1 0) @@ -1188,18 +1203,23 @@ Produces 2 to the nth power for some atom `n`. ~ronrem-lonsem/try=> `@ub`(cat 2 256 255) 0b1111.1111.0001.0000.0000 ~ronrem-lonsem/try=> (cat 3 256 255) - 16.711.936 -++ cut - slice - Description: - Accepts a block size 'a', a cell of two atoms 'b' and 'c' and another atom 'd'. - Produces the tail of 'd' that is 'c' blocks long after right-shifting 'd' 'b'-blocks. - --- + 16.711.936 + +##++cut + +Accepts a block size 'a', a cell of two atoms 'b' and 'c' and another atom 'd'. +Produces the tail of 'd' that is 'c' blocks long after right-shifting 'd' 'b'-blocks. + +####Summary + Activate jet. - Creates a dry %gold gate with a sample which accepts a block size (an atom), - a cell of two atoms, and another atom which will be "cut." - Right-shifts 'd' by 'b' blocks. Then produces the 'c' block long tail of this right-shift. - Examples: + Build dry %gold gate with sample that accepts a block (atom) size `a`, + a cell of two atoms, `b` and `c`, and an atom `d`. + Right-shifts `d` by `b` blocks. + Slams `++end` with `a`, `c`, and the result of the right-shift above. + +####Examples: + ~ronrem-lonsem/try=> (cut 0 [1 1] 2) 1 ~ronrem-lonsem/try=> (cut 0 [2 1] 4) @@ -1212,99 +1232,114 @@ Produces 2 to the nth power for some atom `n`. 3 ~ronrem-lonsem/try=> (cut 1 [1 2] 255) 15 -++ end - tail - Description: - Accepts a block 'a' and two atoms, 'b' and 'c'. - Produces the 'b' blocks of length 'a' on the end of 'c'. - --- + +##++end + + ++end takes a bloq `a`, and atoms `c` and `d`. It returns the tail of `c`, whose l ength is determined by the number of bloqs `b`, of size `a` + +####Summary + + Build dry %gold gate that accepts a block `a`, and two atoms, `b` and `c`. + Produces the `b` blocks of length `a` on the end of `c`. Activate jet. - Creates a dry %gold gate with a sample which accepts a block (an atom) and - two atoms. - Multiplies the binary exponent of 'a' (2^a) with 'b', then takes the binary exponent + Build dry %gold gate with sample that accepts a block (an atom) `a` and + two atoms, `b` and `c`. + Multiplies the binary exponent of `a` (2^a) with `b`, then takes the binary exponent of that (2^((2^a)*b)) to finally produce the modulus of 'c' and the ensuing product. - Examples: + +####Examples + ~ronrem-lonsem/try=> `@ub`12 0b1100 - --- ~ronrem-lonsem/try=> `@ub`(end 0 3 12) 0b100 - --- ~ronrem-lonsem/try=> (end 0 3 12) 4 - --- ~ronrem-lonsem/try=> `@ub`(end 1 3 12) 0b1100 - --- ~ronrem-lonsem/try=> (end 1 3 12) 12 - --- ~ronrem-lonsem/try=> (end 3 1 256) 0 - --- ~ronrem-lonsem/try=> (end 3 1 255) - 255 -++ fil - fill bloqstream - Description: + 255 + +##++fil - --- - Creates a dry %gold gate with a sample which accepts a block size (an atom) and - two other atoms. - Let 'n' be 0. - Let 'd' be 'c'. - Creates and kicks a dry %gold trap whose result is cast to a atom. - Builds an if-then-else statement on n=b. - If so, produce the right-shift of 'd' by one block. - Else, recursively call the trap with 'd' replaced by the sum of 'c' and the one block - left-shift of 'b', n replaced by the increment of n. - Examples: +fill bloqstream + +####Summary -++ lsh - left shift - Description: - Accepts a block size 'a' and two atoms 'b' and 'c'. Produces 'c' left-shifted - 'b' times by the block size. - --- + Creates a dry %gold gate with a sample which accepts a block (atom) size `a a nd two other atoms, `b` and `c`. + Push `n` is 0. + Push `d` is `c`. + Kick a dry %gold trap. + Yield an atom. + If: n=b. + Then: produce the right-shift of 'd' by one block. + Else: recursively call the trap with `d` replaced by the sum of `c` and the one block + left-shift of `b`, `n` replaced by the increment of `n`. + +####Examples: + + ~sivtyv-barnel/try=> `@t`(end 3 2 %abc) + 'ab' + ~sivtyv-barnel/try=> `@t`(fil 3 5 %a) + 'aaaaa' + ~sivtyv-barnel/try=> `@t`(fil 5 10 %babe) + 'babebabebabebabebabebabebabebabebabebabe' + ~sivtyv-barnel/try=> `@tas`(fil 5 10 %babe) + %babebabebabebabebabebabebabebabebabebabe + ~sivtyv-barnel/try=> `@tas`(fil 4 10 %babe) + %ĆĆĆĆĆĆĆĆĆĆbe + ~sivtyv-barnel/try=> `@tas`(fil 4 10 %bf) + %bfbfbfbfbfbfbfbfbfbf + +##++lsh + +Accepts a block size `a` and two atoms `b` and `c`. Produces `c` left-shifted +`b` times by the block size. + +####Summary + Activate jet. - Creates a dry %gold gate with a sample which accepts a block (an atom) and - two atoms. - Multiplies 'c' times the binary exponent of the binary exponent of 'a' times 'b', - that is ((2^((2^a)*b))*c), this producing the desired left-shift on 'c'. - Examples: + Build dry %gold gate with a sample that accepts a block (atom) size and + two atoms, `b` and `c`. + Multiplies `c` times the binary exponent of the binary exponent of `a` times `b` this producing the desired left-shift on 'c'. + +####Examples: + ~ronrem-lonsem/try=> `@ub`1 0b1 - --- ~ronrem-lonsem/try=> `@ub`(lsh 0 1 1) 0b10 - --- ~ronrem-lonsem/try=> (lsh 0 1 1) 2 - --- ~ronrem-lonsem/try=> `@ub`255 0b1111.1111 - --- ~ronrem-lonsem/try=> `@ub`(lsh 3 1 255) 0b1111.1111.0000.0000 - --- ~ronrem-lonsem/try=> (lsh 3 1 255) 65.280 -++ met - measure - Description: - Measures the number of blocks of size 'a' are in 'b'. - --- + +##++met + +Measures the number of blocks of size `a` in `b`. + +####Summary + Activate jet. - Creates a dry %gold gate with a sample which accepts a block size (an atom) and - an atom. + Build dry %gold gate with sample that accepts a block (atom) size `a` and + an atom `b`. Casts the result to an atom. Let 'c' be 0. Creates and kicks a dry %gold trap. - Builds an if-then-else statement on b=0. - If so, produce c. - Else, recursively call the trap, with - 'b' replaced by the single-block right-shift of 'b' and 'c' by the increment of 'c'. - Examples: + If: b=0, + Then: produce c. + Else: toss `b` replaced by the single-block right-shift of `b` and `c` by the increment of `c`. + +####Examples: + ~ronrem-lonsem/try=> (met 0 1) 1 ~ronrem-lonsem/try=> (met 0 2) @@ -1313,16 +1348,22 @@ Produces 2 to the nth power for some atom `n`. 1 ~ronrem-lonsem/try=> (met 3 256) 2 -++ rap - Concatenate a list of atoms while obeying a given blocksize. - --- + +##++rap + +Concatenate a list of atoms while obeying a given blocksize. + +####Summary + Activate jet. Build a dry %gold gate with sample bloq `a`, list of atoms `b` Yield atom If: `b` is null, Then: Produce 0. Else: Produce cat slammed with `a`, the head of `b`, and the toss of `b` for the tail of `b` - --- + +####Examples: + ~palryp-hocsyt/try=> (rap 2 (limo [1 2 3 4 ~])) 17.185 ~palryp-hocsyt/try=> (rap 1 (limo [1 2 3 4 ~])) @@ -1331,10 +1372,9 @@ Produces 2 to the nth power for some atom `n`. 0 ~palryp-hocsyt/try=> (rap 0 (limo [0 0 1 ~])) 1 -++ rep - Assembles - --- +##++rep + Activate jet. Creates a dry %gold gate with a sample which accepts a block size (an atom) and a list of atoms. @@ -1347,33 +1387,32 @@ Produces 2 to the nth power for some atom `n`. of the head of 'b' and the recursive call of the trap with: 'c' replaced by the increment of 'c'. 'b' replaced by the tail of 'b'. - Examples: + +####Examples: + ~palryp-hocsyt/try=> (rep 0 (limo [1 2 3 4 ~])) 5 - --- ~palryp-hocsyt/try=> (rep 1 (limo [1 2 3 4 ~])) 57 - --- ~palryp-hocsyt/try=> (rep 0 (limo [1 0 0 ~])) 1 - --- ~palryp-hocsyt/try=> (rep 0 (limo [1 0 0 0 ~])) 1 - --- ~palryp-hocsyt/try=> (rep 0 (limo [0 1 0 0 ~])) 2 - --- ~palryp-hocsyt/try=> (rep 0 (limo [0 1 0 1 ~])) 10 - --- ~palryp-hocsyt/try=> (rep 0 (limo [0 1 0 1 0 1 ~])) 42 -++ rip - disassemble - Description: - Produces a list of the bits of an atom, in little endian order, according to - block size. - --- + +##++rip + +Produces a list of the bits of an atom, in little endian order, according to +block size. + + +####Summary + Activate jet. Creates a dry %gold gate with a sample which accepts a block size (an atom) and any number. @@ -1383,111 +1422,100 @@ Produces 2 to the nth power for some atom `n`. Else, produce a tuple with head of (end a 1 b), the single-block tail of 'b', and the resursive call of rip with 'b' replaced by the single-block right-shift of 'b'. in little endian. - Examples: + +####Examples: + palryp-hocsyt/try=> `@ub`155 0b1001.1011 - --- ~palryp-hocsyt/try=> (rip 0 155) ~[1 1 0 1 1 0 0 1] - --- ~palryp-hocsyt/try=> (rip 2 155) ~[11 9] - --- ~palryp-hocsyt/try=> (rip 1 155) ~[3 2 1 2] - --- ~palryp-hocsyt/try=> `@ub`256 0b1.0000.0000 - --- ~palryp-hocsyt/try=> (rip 0 256) ~[0 0 0 0 0 0 0 0 1] - --- ~palryp-hocsyt/try=> (rip 2 256) ~[0 0 1] - --- ~palryp-hocsyt/try=> (rip 3 256) ~[0 1] -++ rsh - right shift - Description: - Accepts a block size 'a' and two atoms, 'b' and 'c'. Right-shifts 'c' by 'b' blocks - of size 'a'. - --- +##++rsh + +Accepts a block size 'a' and two atoms, 'b' and 'c'. Right-shifts 'c' by 'b' blocks +of size 'a'. + +####Summary + Activate jet. Creates a dry %gold gate with a sample which accepts a block size (an atom) and two atoms. Takes the binary exponent of the binary exponent of 'a' multiplied by 'b', that is (2^(((2^a)*b))) and divides 'c' by it, producing the desired right-shift on 'c'. - Examples: + +####Examples: + ~ronrem-lonsem/try=> `@ub`145 0b1001.0001 - --- ~ronrem-lonsem/try=> `@ub`(rsh 1 1 145) 0b10.0100 - --- ~ronrem-lonsem/try=> (rsh 1 1 145) 36 - --- ~ronrem-lonsem/try=> `@ub`(rsh 2 1 145) 0b1001 - --- ~ronrem-lonsem/try=> (rsh 2 1 145) 9 - --- ~ronrem-lonsem/try=> `@ub`10 0b1010 - --- ~ronrem-lonsem/try=> `@ub`(rsh 0 1 10) 0b101 - --- ~ronrem-lonsem/try=> (rsh 0 1 10) 5 - --- ~ronrem-lonsem/try=> `@ub`1 0b1 - --- ~ronrem-lonsem/try=> (rsh 0 1 1) 0 - --- ~ronrem-lonsem/try=> (rsh 0 1 1) 0 -++ swap - reverse bloq order - Description: - Produces the reversed block order of a number, obeying block number. - Switches little ending to big and vice versa. - --- + +##++swap + +Produces the reversed block order of a number, obeying block number. +Switches little ending to big and vice versa. + +####Summary + Creates a dry %gold gate with a sample which accepts a block size (an atom) and an atom. Rips apart the atom by the block size, then reverses the tape that is produced. Once it is reversed, it is re-assembled using rep. - Examples: + +####Examples: + ~palryp-hocsyt/try=> `@ub`24 0b1.1000 - --- ~palryp-hocsyt/try=> (swap 0 24) 3 - --- ~palryp-hocsyt/try=> `@ub`3 0b11 - --- ~palryp-hocsyt/try=> (swap 0 0) 0 - --- ~palryp-hocsyt/try=> (swap 1 24) 9 - --- ~palryp-hocsyt/try=> (swap 0 128) 1 + section 2cB, bit logic -++ con - binary or - Description: - Produces the bit-wise logical OR of two atoms. - --- +##++con + +Produces the bit-wise logical OR of two atoms. + +####Summary + Activate jet. Creates a dry %gold gate with a sample which accepts two atoms. Let 'c' be 0, d be 0. @@ -1501,26 +1529,26 @@ section 2cB, bit logic 'd' replaced by the sum of 'd' and the 'c' 0-block left-shift of the logical AND of (last bit of 'a')=0 AND (last bit of 'b')=0. (==) terminates the list of changes. - Examples: + +####Examples: + ~palryp-hocsyt/try=> (con 0 1) 1 - --- ~palryp-hocsyt/try=> (con 1 0) 1 - --- ~palryp-hocsyt/try=> (con 0 0) 0 - --- ~palryp-hocsyt/try=> (con 4 4) 4 - --- ~palryp-hocsyt/try=> (con 10.000 234) 10.234 -++ dis - binary and - Description: - Produces the bit-wise logical AND of two atoms. - --- + +##++dis + +Produces the bit-wise logical AND of two atoms. + +####Summary + Activate jet. Creates a dry %gold gate with a sample which accepts two atoms. Pushes the bunt of a two atom tuple onto the subject. @@ -1534,35 +1562,32 @@ section 2cB, bit logic 'd' replaced by the sum of 'd' and the 'c' 0-block left-shift of the logical OR of (last bit of 'a')=0 OR (last bit of 'b')=0. (==) terminates the list of changes. - Examples: + +####Examples: + ~ronrem-lonsem/try=> `@ub`9 0b1001 - --- ~ronrem-lonsem/try=> `@ub`5 0b101 - --- ~ronrem-lonsem/try=> `@ub`(dis 9 5) 0b1 - --- ~ronrem-lonsem/try=> (dis 9 5) 1 - --- ~ronrem-lonsem/try=> `@ub`534 0b10.0001.0110 - --- ~ronrem-lonsem/try=> `@ub`987 0b11.1101.1011 - --- ~ronrem-lonsem/try=> `@ub`(dis 534 987) 0b10.0001.0010 - --- ~ronrem-lonsem/try=> (dis 534 987) 530 -++ mix - binary xor - Description: - Produces the bit-wise logical exclusive OR of two atoms. - --- + +##++mix + +Produces the bit-wise logical exclusive OR of two atoms. + +####Summary + Activate jet. Creates a dry %gold gate with a sample which accepts two atoms. Casts the result to an atom. @@ -1576,7 +1601,9 @@ section 2cB, bit logic 'c' replaced by the increment of 'c'. 'd' replaced by (==) terminates the list of changes. - Examples: + +####Examples: + ~ronrem-lonsem/try=> `@ub`2 0b10 ~ronrem-lonsem/try=> `@ub`3 @@ -1589,40 +1616,40 @@ section 2cB, bit logic 0b0 ~ronrem-lonsem/try=> (mix 2 2) 0 -++ not - binary not (sized) - Description: - Produces the bit-wise logical NOT over 'b' blocks of the given blocksize. - --- + +##++not + +Produces the bit-wise logical NOT over 'b' blocks of the given blocksize. + +####Summary + First produces the binary exponent of the binary exponent of the block size times 'b'. This is decremented before being multiplied by 'c'. Finally, this product is exclusive ORed and produced. - Examples: + +####Examples: + ~palryp-hocsyt/try=> `@ub`24 0b1.1000 - --- ~palryp-hocsyt/try=> (not 0 5 24) 7 - --- ~palryp-hocsyt/try=> `@ub`7 0b111 - --- ~palryp-hocsyt/try=> (not 2 5 24) 1.048.551 - --- ~palryp-hocsyt/try=> (not 2 5 1.048.551) 24 - --- ~palryp-hocsyt/try=> (not 1 1 (not 1 1 10)) 10 section 2cC, noun orders -++ aor - a-order - Description: - Alphabetic comparator gate. - --- +##++aor + +Alphabetic comparator gate. + +####Summary + Activate jet. Creates a dry %gold gate which accepts two nouns. Casts the result to a loobean. @@ -1642,31 +1669,32 @@ section 2cC, noun orders If so, produce the recursive call to the trap with 'a' replaced by the byte right-shift of 'a' and 'b' replaced by the byte right-shift of 'b'. Else (if !(c=d)), produce (c (aor 'a' 'b') %.y ~tadbyl-hilbel/try=> (aor 'b' 'a') %.n - --- ~tadbyl-hilbel/try=> (aor "foo" "bar") %.n ~tadbyl-hilbel/try=> (aor "bar" "foo") %.y - --- ~tadbyl-hilbel/try=> (aor "abcdefz" "abcdefa") %.n ~tadbyl-hilbel/try=> (aor "abcdefa" "abcdefz") %.y - --- ~tadbyl-hilbel/try=> (aor 10.000 17.000) %.y ~tadbyl-hilbel/try=> (aor 10 9) %.n -++ dor - d-order - Description: - Numeric comparator gate. - --- + +##++dor + +Numeric comparator gate. + +####Summary + Activate jet. Creates a dry %gold gate which accepts two nouns. Casts the result to a loobean. @@ -1681,26 +1709,28 @@ section 2cC, noun orders Else ('a' is an atom), build an unless-then-else statement on "b is an atom." If so, produce true. Else, produce (a (dor 1 2) %.y ~tadbyl-hilbel/try=> (dor 2 1) %.n - --- ~tadbyl-hilbel/try=> (dor ~[1 2 3] ~[1 2 4]) %.y ~tadbyl-hilbel/try=> (dor ~[1 2 4] ~[1 2 3]) %.n - --- ~tadbyl-hilbel/try=> (dor (limo ~[99 100 10.000]) ~[99 101 10.000]) %.y ~tadbyl-hilbel/try=> (dor ~[99 101 10.999] (limo ~[99 100 10.000])) %.n -++ gor - g-order - Description: + +##++gor + Hash comparator gate. - --- + +####Summary + Activate jet. Creates a dry %gold gate which accepts two nouns. Casts the result to a loobean. @@ -1708,7 +1738,9 @@ section 2cC, noun orders Create an if-then-else statement on c=d. If so, produce the d-order of 'a' and 'd'. Else, produce the loobean (c (gor 'd' 'c') %.y ~palryp-hocsyt/try=> 'd' @@ -1726,17 +1758,17 @@ section 2cC, noun orders %.y ~palryp-hocsyt/try=> (gor 'c' 'd') %.n - --- ~palryp-hocsyt/try=> (gor "foo" "bar") %.n - --- ~palryp-hocsyt/try=> (gor (some 10) (limo [1 2 3 ~])) %.n -++ hor - h-order - Description: - Recursive hash comparator gate. - --- + +##++hor + +Recursive hash comparator gate. + +####Summary + Activate jet. Creates a dry %gold gate which accepts two nouns. Casts the result to a loobean. @@ -1749,13 +1781,17 @@ section 2cC, noun orders Else, build an if-then-else statement on (-.a=-.b), where '-.a' is the head of 'a'. If so, produce the g-order of the tails of 'a' and 'b'. Else (if the heads of 'a' and 'b' are not equal), produce the g-order of the tails of 'a', 'b'. - Examples: + +####Examples + +--- -++ vor - v-order - Description: - Double hash comparator gate. - --- +##++vor + +Double hash comparator gate. + +####Summary + Activate jet. Creates a dry %gold gate which accepts two nouns. Casts the result to a loobean. @@ -1763,26 +1799,26 @@ section 2cC, noun orders Builds an if-then-else statement on (c=d). If so, produce the d-order of 'a' and 'b'. Else, produce the loobean of (c (vor 'f' 'g') %.y - --- ~palryp-hocsyt/try=> (vor 'a' 'z') %.n - --- ~palryp-hocsyt/try=> (vor 43.326 41.106) %.n section 2cD, insecure hashing -++ fnv - FNV scrambler - Description: - Hashes an atom with the 32-bit FNV non-cryptographic hash algorithm. - --- - Multiplies 'a' by the prime number 16,777,619 and then takes the block of - size 5 off the product's end. - Examples: +##++fnv + +Hashes an atom with the 32-bit FNV non-cryptographic hash algorithm. +Multiplies 'a' by the prime number 16,777,619 and then takes the block of +size 5 off the product's end. + +####Examples + ~palryp-hocsyt/try=> (fnv 10.000) 272.465.456 --- @@ -1791,16 +1827,16 @@ section 2cD, insecure hashing --- ~palryp-hocsyt/try=> (fnv 1) 16.777.619 -++ mug - 31bit nonzero FNV1a - Description: - Hashes any noun with the 31-bit nonzero FNV-1a non-cryptographic hash algorithm. - --- + +##++mug + +Hashes any noun with the 31-bit nonzero FNV-1a non-cryptographic hash algorithm. + +####Summary + Activate jet. Creates a dry %gold gate with a sample accepting any noun. - (?^ and 'p' subsection fill in.) - Let 'b' be 2,166,136,261. Create and kick a dry %gold gate. Cast its result to an atom. Let 'c' be 'b'. @@ -1815,37 +1851,36 @@ section 2cD, insecure hashing the fnv hash of the logical XOR of 'c' and (cut 3 [d 1] a), 'd' replaced by the increment of 'd'. - Examples: +####Examples + ~palryp-hocsyt/try=> (mug 10.000) 178.152.889 - --- ~palryp-hocsyt/try=> (mug 10.001) 714.838.017 - --- ~palryp-hocsyt/try=> (mug 1) 67.918.732 - --- ~palryp-hocsyt/try=> (mug (some 10)) 1.872.403.737 - --- ~palryp-hocsyt/try=> (mug (limo [1 2 3 4 5 ~])) 1.067.931.605 section 2cE, phonetic base -++ po - left-right syllable - Description: - Provides the phonetic syllables and name generators for the Urbit naming system. - --- +##++po + +Provides the phonetic syllables and name generators for the Urbit naming system. + +####Summary + Activate jet. Create the cell [sis dex] where 'sis' and 'dex' are the togas on the left-hand ("sinister") and right-hand ("Dexter") phonetic syllable cords, respectively. Build %gold core to contain the following arms. - ++ ind + +##++ind - Description: - --- +####Summary + Activate jet. Creates a dry %gold gate which accepts and atom. Let 'b' be 0. @@ -1853,12 +1888,12 @@ section 2cE, phonetic base Builds an if-then-else statement on (b=256). If so, produce null. Else, build an if-then-else statement on (a=(tod b)). If so, produce the atomic unit [~ b]. Else, recursively call the trap with 'b' replaced by the increment of 'b'. - Examples: + - ++ ins +##++ins - Description: - --- +####Summary + Activate jet. Creates a dry %gold gate which accepts and atom. Let 'b' be 0. @@ -1866,181 +1901,197 @@ section 2cE, phonetic base Builds an if-then-else statement on (b=256). If so, produce null. Else, build an if-then-else statement on (a=(tos b)). If so, produce the atomic unit [~ b]. Else, recursively call the trap with 'b' replaced by the increment of 'b'. - Examples: - ++ tod - Description: - Selects right-hand phonetic syllable from 'dex'. - --- +##++tod + +Selects right-hand phonetic syllable from 'dex'. + +####Summary + Activate jet. Creates a dry %gold gate which accepts and atom. Assert that 'a' is less than 256. Produce the three tail-end byte blocks in the rght-shift of dex. - Examples: + +####Examples + ~palryp-hocsyt/try=> (tod:po 98) 6.514.020 - --- ~palryp-hocsyt/try=> (tod:po 150) 6.781.298 - --- ~palryp-hocsyt/try=> (tod:po 255) 7.562.598 - --- ~palryp-hocsyt/try=> (tod:po 256) ! exit - ++ tos + +##++tos + Selects left-hand phonetic syllable from 'sin'. - --- + +####Summary + Activate jet. Creates a dry %gold gate which accepts and atom. Assert that 'a' is less than 256. Produce the three tail-end byte blocks in the rght-shift of dex. - Examples: + +####Examples + section 2cF, signed and modular ints -++ si - signed integer - ++ abs - absolute value - Description: - Produces the absolute value of a signed integer. - --- +##++si + + +##++abs + +Produces the absolute value of a signed integer. + +####Summary + Creates a dry %gold gate with a sample which accepts a single atom. Sums the last bit of the atom with the single bit-wise block right-shift of the atom, producing the absolute value. - Examples: +####Examples + ~palryp-hocsyt/try=> (abs:si -2) 2 - --- ~palryp-hocsyt/try=> (abs:si -10.000) 10.000 - --- ~palryp-hocsyt/try=> (abs:si --2) 2 - ++ dif - subtraction - Description: - Produces the difference between two signed integers. - --- + +#++dif + +Produces the difference between two signed integers. + +####Summary + Creates a dry %gold gate with a sample which accepts two signed integers. Sums the first signed integer with a new signed integer, made from the second by (new !(syn b) (abs b)), where !(syn b) is the negative of the second integer's sign. This sum, produced, is the difference. - Examples: + +####Examples + ~palryp-hocsyt/try=> (dif:si --10 -7) --17 - --- ~palryp-hocsyt/try=> (dif:si --10 --7) --3 - --- ~palryp-hocsyt/try=> (dif:si `@s`0 --7) -7 - --- ~palryp-hocsyt/try=> (dif:si `@s`0 `@s`7) --4 - ++ dul - modulus - Description: - Produces the modulus of two signed integers. - --- + +##++dul + +Produces the modulus of two signed integers. + +####Summary + Creates a dry %gold gate which accepts a signed integer and an atom. Let 'c' be the [sign value] representation of 'a'. Builds an if-then-else statement on -.c, the sign of 'a'. If so ('a' is positive.), produce the modulus of the absolute value of 'c' and 'b'. Else, produce the differenece between 'b' and the absolute value of 'c'. - Examples: + +####Examples + ~palryp-hocsyt/try=> (dul:si --9 3) 0 - --- ~palryp-hocsyt/try=> (dul:si --9 4) 1 - --- ~palryp-hocsyt/try=> (dul:si --9 5) 4 - --- ~palryp-hocsyt/try=> (dul:si --9 6) 3 - --- ~palryp-hocsyt/try=> (dul:si --90 --10) 10 - ++ fra - divide - Description: - Produces the quotient of two signed integers. - --- + +##++fra + +Produces the quotient of two signed integers. + +####Summary + Creates a dry %gold gate with a sample which accepts two signed integers. Divides the absolute value of 'a', the dividend, and 'b', the divisor, and passes that value as the unsigned integer value of a new signed integer. The sign of the new signed integer is the bitwise logical XOR of the two integer's signs, meaning the quotient is only positive when both factors are positive. This new signed integer is produced. - Examples: +####Examples ~palryp-hocsyt/try=> (fra:si --4 --2) --2 - --- ~palryp-hocsyt/try=> (fra:si -4 -2) --2 - --- ~palryp-hocsyt/try=> (fra:si -4 --2) -2 - --- ~palryp-hocsyt/try=> (fra:si --4 -2) -2 - --- ~palryp-hocsyt/try=> (fra:si `@s`4 `@s`2) --2 - --- ~palryp-hocsyt/try=> (fra:si `@s`4 2) ! type-fail ! exit - ++ new - [sign value] to @s - Description: + +##++new + +[sign value] to @s + +####Summary + Produces a signed integer from a sign value (either & or |) and an atom. - --- Creates a dry %gold gate with a sample which acccepts a loobean and an atom Builds an if-then-else statement on the sign value 'a'. If so, just produce 'b' multiplied by 2. Else, build an if-then-else statement on b=0. If so, produce 0. Else, produce the increment of (2*(dec b)). The result is then cast to an integer and produced from new:si. - Examples: + +####Examples + ~palryp-hocsyt/try=> (new:si [& 10]) --10 ~palryp-hocsyt/try=> (new:si [| 10]) -10 ~palryp-hocsyt/try=> (new:si [%.y 7]) --7 - ++ old - [sign value] - Description: - Produces the cell [sign value] representations of a signed integer. - --- + +####++old + +Produces the cell [sign value] representations of a signed integer. + +####Summary + Create a dry %gold date with a with a sample which accepts a signed integer. Produce a cell with head (syn a), the sign of 'a', and tail (abs), the absolute value of 'a'. - Examples: + +####Examples + ~palryp-hocsyt/try=> (old:si 7) ! type-fail ! exit - --- ~palryp-hocsyt/try=> (old:si -7) [%.n 7] - --- ~palryp-hocsyt/try=> (old:si --7) [%.y 7] - --- ~palryp-hocsyt/try=> (old:si `@s`7) [%.n 4] - --- ~palryp-hocsyt/try=> (old:si -0) [%.y 0] - ++ pro - Produces the product of two signed integers. - --- + +##++pro + +Produces the product of two signed integers. + +####Summary + Creates a dry %gold gate with a sample which accepts two signed integers. Produces their product by evaluating a new signed integer whose sign is the bitwise XOR of the two number's signs and whose value is the product of their two absolute values. - --- + +####Examples + palryp-hocsyt/try=> (pro:si -4 --2) -8 ~palryp-hocsyt/try=> (pro:si -4 -2) @@ -2049,12 +2100,18 @@ section 2cF, signed and modular ints -100.000.000 ~palryp-hocsyt/try=> (pro:si -1.337 --0) --0 - ++ rem - Produces the remainder from a division of two signed integers. - --- + +##++rem + +Produces the remainder from a division of two signed integers. + +####Summary + Creates a dry %gold gate with a sample which accepts two signed integers. Produces the difference between 'a' and the (b*(a/b)). - --- + +####Examples + ~palryp-hocsyt/try=> (rem:si -10 -4) -2 ~palryp-hocsyt/try=> (rem:si --10 --4) @@ -2065,9 +2122,13 @@ section 2cF, signed and modular ints --1 ~palryp-hocsyt/try=> (rem:si --0 --10.000) --0 - ++ sum - Sum two signed integers. - --- + +#++sum + +Sum two signed integers. + +####Summary + Creates a dry %gold gate which accepts two signed integers. Prints '%si-sum' in the stack trace if the following code crashes. Let 'c' and 'd' be the [sign value] representation of 'a' and 'b', respectively. @@ -2083,26 +2144,28 @@ section 2cF, signed and modular ints If so, produce a new, negative signed intger with value ((abs a)-(abs b)) Else, produce a new, positive signed integer with value ((abs c)-(abs d)) Else (if d is not positive), produce a new, negative signed with value ((abs c)+(abs d)). - --- + +####Examples + ~palryp-hocsyt/try=> (sum:si --10 --10) --20 - --- ~palryp-hocsyt/try=> (sum:si --10 -0) --10 - --- ~palryp-hocsyt/try=> (sum:si -10 -7) -17 - --- ~palryp-hocsyt/try=> (sum:si -10 --7) -3 - ++ sun - Produces a signed integer from an unsigned integer. - Note that the result must be manually cast to some @s odor to be inferred as an - unsigned integer in the type system. - --- + +##++sun + +Produces a signed integer from an unsigned integer. +Note that the result must be manually cast to some @s odor to be inferred as an +unsigned integer in the type system. + +####Examples + Build dry %gold gate with sample unsigned integer `a` Produce the integer multiplied by 2. - --- ~palryp-hocsyt/try=> `@s`10 --5 ~palryp-hocsyt/try=> (sun:si 10) @@ -2113,13 +2176,16 @@ section 2cF, signed and modular ints --10 ~palryp-hocsyt/try=> `@sd`(sun:si 12.345) --12.345 - ++ syn - Is a signed integer positive? - Produce the sign of a signed integer - & being posiitve, | negative. - --- + +##++syn + +Is a signed integer positive? +Produce the sign of a signed integer - & being posiitve, | negative. + +####Summary + Build dry %gold gate with sample signed integer `a` Is the last bit of 'a' 0? - --- ~palryp-hocsyt/try=> (syn:si -7) %.n ~palryp-hocsyt/try=> (syn:si --7) @@ -2130,20 +2196,30 @@ section 2cF, signed and modular ints %.y ~palryp-hocsyt/try=> (syn:si --0) %.y -++ fe - Binary block modulo math engine. Defaults to bloq size 1. - --- + +##+fe + +Binary block modulo math engine. Defaults to bloq size 1. + +####Summary + Build dry %gold tray with sample bloq `a` - ++ dif - Produces the difference between two atoms in the modular basis representation. - --- + +##++dif + +Produces the difference between two atoms in the modular basis representation. + +####Summary + Build dry %gold gate wtih sample atom `b`, atom `c` Produce sit slammed with: The difference between: The sum of: `out` and slam of `b` to sit Slam of `c` to sit - --- + +####Examples + ~tadbyl-hilbel/try=> (~(dif fe 3) 63 64) 255 ~tadbyl-hilbel/try=> (~(dif fe 3) 5 10) @@ -2160,14 +2236,20 @@ section 2cF, signed and modular ints 13 ~tadbyl-hilbel/try=> (~(dif fe 2) 63 64) 15 - ++ inv - Inverts the order of the modular field. - --- + +##++inv + +Inverts the order of the modular field. + +####Summary + Build dry %gold gate with sample atom `b` Produce the difference between: The decrement of `out` Slam of `b` to sit. - --- + +####Examples + palryp-hocsyt/try=> (~(inv fe 3) 255) 0 ~palryp-hocsyt/try=> (~(inv fe 3) 256) @@ -2180,9 +2262,11 @@ section 2cF, signed and modular ints 253 ~palryp-hocsyt/try=> (~(inv fe 3) 3) 252 - ++ net + +##++net - --- +####Summary + Build dry %gold gate with sample atom `b`. Yield atom. Push toss of `b` for the slam of `b` to sit on the context. Unless: `a` is less than or equal to 3, @@ -2192,7 +2276,9 @@ section 2cF, signed and modular ints The single c-block left-shift of: The toss of `a` for `c`, `b` for the c-block [0 1] cut of `b` The toss of `a` for `c`, `b` for the c-block [1 1] cut of `b` - --- + +####Examples + ~tadbyl-hilbel/try=> (~(net fe 3) 64) 64 ~tadbyl-hilbel/try=> (~(net fe 3) 128) @@ -2239,13 +2325,18 @@ section 2cF, signed and modular ints 562.949.953.421.312 ~tadbyl-hilbel/try=> (~(net fe 6) 513) 72.620.543.991.349.248 - ++ out - Description: - The maximum integer value that the current block can store. - --- + +##+out + +The maximum integer value that the current block can store. + +####Summary + Produce the binary exponent of: - The binary expoenent of the block size, `a` - --- + The binary expoenent of the block size, `a` + +####Examples + ~tadbyl-hilbel/try=> ~(out fe 0) 2 ~tadbyl-hilbel/try=> ~(out fe 1) @@ -2262,9 +2353,11 @@ section 2cF, signed and modular ints 768.814.416.622.492.847.430.639.474.124.377.767.893.424.865.485.276.302.219.601.246. 094.119.453.082.952.085.005.768.838.150.682.342.462.881.473.913.110.540.827.237.163. 350.510.684.586.298.239.947.245.938.479.716.304.835.356.329.624.224.137.216 - ++ rol - - --- + +##++rol + +####Summary + Build dry %gold gate with sample bloq `b`, atom `c`, atom `d`. Yield atom. Push `e` is sit slammed with `d`, the modular representation of `d` Push `f` is the binary expoenent of: @@ -2274,12 +2367,15 @@ section 2cF, signed and modular ints con slammed with: The `g` b-blocks right-shift of `e` The difference between `f` and `g` b-blocks left-shift of `e` - --- - - ++ ror +####Examples + + ?? - --- +##++ror + +####Summary + Build dry %gold gate with sample bloq `b`, atom `c`, atom `d`. Yield atom. Push `e` is sit slammed with `d`, the modular representation of `d` Push `f` is the binary expoenent of: @@ -2289,14 +2385,22 @@ section 2cF, signed and modular ints con slammed with: The `g` b-blocks left-shift of `e` The difference between `f` and `g` b-blocks right-shift of `e` - --- - ++ sum - Sum two numbers in this modular field. - --- +####Examples + + ?? + +##++sum + +Sum two numbers in this modular field. + +####Summary + Build dry %gold gate with sample atom `b`, atom `c` - Produce sit slammed with the sum of `b` and `c` - --- + Produce sit slammed with the sum of `b` and `c`. + +####Examples + ~tadbyl-hilbel/try=> (~(sum fe 3) 10 250) 4 ~tadbyl-hilbel/try=> (~(sum fe 0) 0 1) @@ -2311,12 +2415,18 @@ section 2cF, signed and modular ints 10.256 ~tadbyl-hilbel/try=> (~(sum fe 4) 10.000 100.000) 44.464 - ++ sit - Produce an atom in the current modular block representation. - --- + +##++sit + +Produce an atom in the current modular block representation. + +####Summary + Build dry %gold gate with sample atom `b` Produce the last block of size `a` in `b` - --- + +####Examples + ~tadbyl-hilbel/try=> (~(sit fe 3) 255) 255 ~tadbyl-hilbel/try=> (~(sit fe 3) 256) @@ -2342,27 +2452,30 @@ section 2cF, signed and modular ints section 2cG, floating point -++ rlyd -++ rlyh -++ rlyq -++ rlys -++ ryld -++ rylh -++ rylq -++ ryls +##++ rlyd +##++ rlyh +##++ rlyq +##++ rlys +##++ ryld +##++ rylh +##++ rylq +##++ ryls + section 2cH, urbit time -Note that entering '-<-' in the shell produces the current time in @da format. -We use this for many of our examples. +####Note that entering '-<-' in the shell produces the current time in @da format. We use this for many of our examples. ~zod/try=> -<- ~2014.8.4..19.39.59..9288 -++ year - Accept a parsed date of form [[a=? y=@ud] m=@ud t=tarp] and produce - its @d representation. - --- +##++year + +Accept a parsed date of form [[a=? y=@ud] m=@ud t=tarp] and produce +its @d representation. + +####Summary + Build dry %gold gate with sample parsed date `det` Yield @d. Push `yer` is: @@ -2373,12 +2486,18 @@ We use this for many of our examples. `yer`, `m.det`, `d.t.det` Produce yule slammed with: `day`, `h.t.det`, `m.t.det`, `s.t.det`, `f.t.det` - --- + +####Examples + ~zod/try=> (year [[a=%.y y=2.014] m=8 t=[d=4 h=20 m=4 s=57 f=~[0xd940]]]) 0x8000000d227df4e9d940000000000000 -++ yore + +##++yore + Produce the parsed date [[a=? y=@ud] m=@ud t=tarp] representation of a @d date. - --- + +####Summary + Build dry %gold gate with sample @d `now`. Yield date. Push `rip` is yell slammed with `now`, the @@ -2389,14 +2508,20 @@ We use this for many of our examples. a is true, y is the difference between y.ger and 292.277.024.400, Else: Proudce a is false, y is the difference between 292.277.024.400 and y.ger. [m.ger d.ger h.rip m.rip s.rip. f.rip], the tarp of the date. - --- + +####Examples + ~zod/try=> (yore -<-) [[a=%.y y=2.014] m=8 t=[d=4 h=20 m=17 s=1 f=~[0x700d]]] ~zod/try=> (yore -<-) [[a=%.y y=2.014] m=8 t=[d=4 h=20 m=28 s=53 f=~[0x7b82]]] -++ yell - Produce a parsed daily time format from an atomic date. - --- + +##++yell + +Produce a parsed daily time format from an atomic date. + +####Summary + Build a dry %gold gate with sample @d, `now`. Yield tarp. Push `sec` is the 6-bit right-shift of `now`. @@ -2413,16 +2538,22 @@ We use this for many of our examples. Push `mit` is `sec` divided by the constant `mit:yo` Use `sec` replaced by the modulus of`sec` and the constant `mit:yo` Produce the tuple `day`, `hor`, `mit`, `sec`, `fan`. - --- + +####Examples + ~dovryp-toblug/try=> (yell ~2014.3.20..05.42.53..7456) [d=106.751.991.820.094 h=5 m=42 s=53 f=~[0x7456]] ~tadbyl-hilbel/try=> (yell ~2014.6.9..19.09.40..8b66) [d=106.751.991.820.175 h=19 m=9 s=40 f=~[0x8b66]] ~tadbyl-hilbel/try=> (yell ~1776.7.4) [d=106.751.991.733.273 h=0 m=0 s=0 f=~] -++ yule - Accept a tarp, a parsed daily time, and produces a time atom, @d. - --- + +##++yule + +Accept a tarp, a parsed daily time, and produces a time atom, @d. + +####Summary + Build a dry %gold gate with sample tarp, `rip`. Yield @d. Push `sec` is the sum of: @@ -2442,7 +2573,9 @@ We use this for many of our examples. Produce con (binary OR) slammed with: The 6-bit single block left-shift of `sec`, `fac`. - --- + +####Examples + ~tadbyl-hilbel/try=> =murica (yell ~1776.7.4) ~tadbyl-hilbel/try=> murica [d=106.751.991.733.273 h=0 m=0 s=0 f=~] @@ -2452,10 +2585,14 @@ We use this for many of our examples. 0x8000000d21c88d5d7456000000000000 ~tadbyl-hilbel/try=> (yule (yell ~2014.6.9..19.09.40..8b66)) 0x8000000d223413f48b66000000000000 -++ yall - Produce the date tuple of [y=@ud m=@ud d=@ud] of the year, month, and day - from a number of days from the beginning of time. - --- + +##++yall + +Produce the date tuple of [y=@ud m=@ud d=@ud] of the year, month, and day +from a number of days from the beginning of time. + +####Summary + Build dry %gold gate with sample @ud, `day` Yield the tuple [y=@ud m=@ud d=@ud] Push `era` is 0, `cet` is 0, `lep` is the bunt of a bean. @@ -2502,17 +2639,23 @@ We use this for many of our examples. Else: Produce the toss of: `mot` for its increment, `day` for the difference between `day` and `zis` - --- + +####Examples + ~zod/try=> (yall 198) [y=0 m=7 d=17] ~zod/try=> (yall 90.398) [y=247 m=7 d=3] ~zod/try=> (yall 0) [y=0 m=1 d=1] -++ yawn + +##++yawn + Days since Jesus. Accpet a year, month, and day (Three unsigned decimal integers) and produce the day number it is in the CE. - --- + +####Summary + Build dry %gold gate with sample atoms `yer`, `mot`, `day` Yield atom. Use `mot` replaced by its decrement, `day` by its decrement as subject. @@ -2542,21 +2685,29 @@ We use this for many of our examples. Else: Produce the sum of `day`, `yer` divided by 400 multiplied by the increment of 4*36,524. - --- + +####Examples + ~zod/try=> (yawn 2.014 8 4) 735.814 ~zod/try=> (yawn 1.776 7 4) 648.856 -++ yelp + +##++yelp + Is the given year a leap year? - --- + +####Summary + Build dry %gold gate with sample atom `yer`. Yield loobean. Produce the logical AND of: Is 0 the modulus of `yer` by 4? The logical OR of: Is 0 the modulus of `yer` by 100? Is 0 the modulus of `yer` by 400? - --- + +####Examples + ~tadbyl-hilbel/try=> (yelp 2.014) %.n ~tadbyl-hilbel/try=> (yelp 2.008) @@ -2565,86 +2716,123 @@ We use this for many of our examples. %.y ~tadbyl-hilbel/try=> (yelp 14.011) %.n -++ yo + +##++yo + Constants of time. - --- + +####Summary + Build a %gold core. - ++ cet + +##++ cet + Days in a century. Derived by multiplying the number of days in a year (365) by the number of years in a century (100), then adding the number days from leap years in a century (24). - --- + +####Examples + ~tadbyl-hilbel/try=> cet:yo 36.524 ~tadbyl-hilbel/try=> (add 365 cet:yo) 36.889 ~tadbyl-hilbel/try=> (sub (add 24 (mul 100 365)) cet:yo) 0 - ++ day + +##++day + The number of seconds in a day. Derived by multiplying the the number of seconds in an hour by the hours in a day. - --- + +####Examples + ~tadbyl-hilbel/try=> day:yo 86.400 ~tadbyl-hilbel/try=> (add 60 day:yo) 86.460 - ++ era - --- - - --- - - ++ hor - The number of seconds in an hour. Derived by multiplying the number of - seconds in a minute by the minutes in an hour. - --- +##++era + +####Examples + + ?? + + +##++hor + +The number of seconds in an hour. Derived by multiplying the number of +seconds in a minute by the minutes in an hour. + +####Examples + ~tadbyl-hilbel/try=> hor:yo 3.600 - ++ jes + +##++jes + +####Examples - --- - - --- - - ++ mit - The number of seconds in a minute. We just knew this one. - --- + +##++mit + +The number of seconds in a minute. We just knew this one. + +####Examples + ~tadbyl-hilbel/try=> mit:yo 60 - ++ moh + +##++moh + The days in each month of the Gregorian common year. A list of unsigned decimal atoms (Either 28, 30, or 31) denoting the number of days in the month at the year at that index. - --- + +####Examples + ~tadbyl-hilbel/try=> moh:yo ~[31 28 31 30 31 30 31 31 30 31 30 31] - ++ moy + +##++moy + The days in each month of the Gregorian leap-year. A list of unsigned decimal atoms (Either 29,30, or 31) denoting the number of days in the month at the leap-year at that index. - --- + +####Examples + ~tadbyl-hilbel/try=> moy:yo ~[31 29 31 30 31 30 31 31 30 31 30 31] - ++ qad + +##++qad + The number of seconds in four years. Derived by adding one second to the number of seconds in four years. - --- + +####Examples + ~tadbyl-hilbel/try=> qad:yo 126.144.001 - ++ yer + +##++yer + The number of seconds in a year. Derived by multiplying the number of seconds in a day by 365. - --- + +####Examples + ~tadbyl-hilbel/try=> yer:yo 31.536.000 section 2cI, almost macros -++ hard - demand result type - Description: - Ruthlessly demands that a specific type be produced, crashing the program is it is not. - --- +##++hard + +Ruthlessly demands that a specific type be produced, crashing the program is it is not. + +####Summary + Creates a vulanized wet gate which accepts any gate which accepts any noun and produces any noun. Creates a dry %gold gate which accepts any noun and casts the result to the @@ -2653,7 +2841,9 @@ section 2cI, almost macros Let gol be the higher gate argument slammed with the lower arbitrary noun. Assert that the result's icon is equal to that of the lower arbitrary noun before producing said result. - Examples: + +####Examples + ~palryp-hocsyt/try=> ((hard (list)) (limo [1 2 3 ~])) ~[1 2 3] ~tadbyl-hilbel/try=> ((hard ,@) (add 2 2)) @@ -2663,11 +2853,13 @@ section 2cI, almost macros ~tadbyl-hilbel/try=> ((hard tape) (crip "...Tape to cord, bro?...")) ! hard ! exit -++ soft - politely demand - Description: - Politely requests a specific type to be produced, producing null if it is not. - --- + +##++soft + +Politely requests a specific type to be produced, producing null if it is not. + +####Summary + Creates a vulanized wet gate which accepts any gate which accepts any noun and produces any noun. Creates a dry %gold gate which accepts any noun and casts the result to the @@ -2677,7 +2869,9 @@ section 2cI, almost macros the lower arbitrary noun. If so, produce null. Else, produce the unit of the result. - Examples: + +####Examples + ~tadbyl-hilbel/try=> ((soft ,%4) (add 2 2)) [~ %4] ~tadbyl-hilbel/try=> ((soft ,@) (add 2 2)) @@ -2688,16 +2882,19 @@ section 2cI, almost macros [~ 'Tape to cord, Woohoo!'] ~tadbyl-hilbel/try=> ((soft ,@t) (trip 'Cmon man... Tape to cord? Please?!')) ~ - + +--- chapter 2d, containers section 2dA, sets +--- -++ apt - set invariant - Description: - Accepts any tree and produces a loobean indicating whether the tree is a set. - --- +##++ apt + +Accept any tree and produce a loobean indicating whether the tree is a set. + +####Summary + Creates a dry %gold gate which accepts a tree. Builds an if-then-else statement on "a is an atom." If so, produce true. @@ -2707,7 +2904,9 @@ section 2dA, sets The if "r.a is an atom" then produce true, else (produce the logical AND of the v-order of n.a and n.r.a and the h-order of n.a and n.r.a) if-then-else statement. (==) terminates the tall logical AND statement. - Examples + +####Examples + ~tadbyl-hilbel/try=> =b (sa `(list ,@t)`['john' 'bonita' 'daniel' 'madeleine' ~]) ~tadbyl-hilbel/try=> (apt b) %.y @@ -2717,19 +2916,26 @@ section 2dA, sets {[p='d' q=5] [p='a' q=1] [p='c' q=4] [p='b' q=[2 3]]} ~tadbyl-hilbel/try=> (apt m) %.y -++ in - set engine - Description: + +--- + +##++ in + Container arm for set operation arms. The contained arms inherit it's sample set, 'a'. - --- + +####Summary + Activate jet. Creates a %gold trap with sample 'a', a set. - +- all - logical AND - Description: - Accepts a gate which accepts any noun and produces a loobean. Slams the gate with each member - of set 'a', produce the logical AND of the transformed set. - --- +--- + +##+- all + +Accept a gate which accepts any noun and produce a loobean. Slam the gate with each member +of set 'a', produce the logical AND of the transformed set. + +####Summary + Activate jet. Creates a wet %gold gate which accepts any gate which produces a loobean. Creates and kicks a dry %gold gate, casts the result to a loobean. @@ -2737,19 +2943,25 @@ section 2dA, sets If so, produce true. Else, produce the logical AND of (b n.a) and the recursive calls of the trap with 'a' replaced by 'l.a' and 'a' replaced by 'r.a'. - Examples: + +####Examples + ~dovryp-toblug/try=> =b (sa `(list ,[@t *])`[['a' 1] ['b' [2 3]] ~]) ~dovryp-toblug/try=> (~(all in b) |=(a=* ?@(-.a & |))) %.n ~tadbyl-hilbel/try=> =b (sa `(list ,@t)`['john' 'bonita' 'daniel' 'madeleine' ~]) ~tadbyl-hilbel/try=> (~(all in b) |=(a=@t (gte a 100))) %.y - +- any - logical OR - Description: - Accepts a gate which accepts any noun and produces a loobean. Slams the gate with each member - of set 'a', produce the logical OR of the transformed set. - --- + +--- + +##+- any + +Accept a gate which accepts any noun and produce a loobean. Slam the gate with each member +of set 'a', produce the logical OR of the transformed set. + +####Summary + Activate jet. Creates a wet %gold gate which accepts any gate which produces a loobean. Creates and kicks a dry %gold gate, casts the result to a loobean. @@ -2757,18 +2969,24 @@ section 2dA, sets If so, produce false. Else, produce the logical OR of (b n.a) and the recursive calls of the trap with 'a' replaced by 'l.a' and 'a' replaced by 'r.a'. - Examples: + +####Examples: + ~dovryp-toblug/try=> =b (sa `(list ,[@t *])`[['a' 1] ['b' [2 3]] ~]) ~dovryp-toblug/try=> (~(any in b) |=(a=* ?@(+.a & |))) %.y ~tadbyl-hilbel/try=> =b (sa `(list ,@t)`['john' 'bonita' 'daniel' 'madeleine' ~]) ~tadbyl-hilbel/try=> (~(any in b) |=(a=@t (lte a 100))) %.n - +- del - b without any a - Description: - Accepts any noun 'b' and removes it from the set 'a'. - --- + +--- + +##+- del + +Accept any noun 'b' and removes it from the set 'a'. + +####Summary + Activate jet. Creates a wet %gold gate which accepts any noun. Creates and kicks a dry %gold gate, casts the result to the type of 'a'. @@ -2778,7 +2996,9 @@ section 2dA, sets If so, build an if-then-else statement by testing the h-order of 'b' and 'n.a'. If so, produce a the cell [n.a $(a l.a) r.a], where $(a l.a) is the recursive call of the trap with 'a' replaced by the left - Examples: + +####Examples + ~dovryp-toblug/try=> =b (sa `(list ,@t)`[`a` `b` `c` ~]) ~dovryp-toblug/try=> (~(del in b) `a`) {`c` `b`} @@ -2790,20 +3010,27 @@ section 2dA, sets ~tadbyl-hilbel/try=> (~(del in b) 'susan') {'bonita' 'madeleine' 'daniel' 'john'} - +- dig - axis of b in a - Description: - Produces - --- +--- + +##+- dig + +Produce the axis of the noun `b` within the set `a`. + +####Summary + Creates a dry %gold gate which accepts a single noun. Let 'c' be 1. Creates and kicks a dry %gold trap. Casts the result to an atomic unit. Builds an if-then-else statement on "a is null." If so, produce null. Else, build an if-then-else statement on (b=n.a). If so, produce the unit [~ u=(peg c 2)]. Else, build an if-then-else statement on the g-order of 'b' and 'n.a' - If so, produce the recursive call of the trap with 'a' replaced by 'l.a' and 'c' replaced by (peg c 6). - Else, produce the recursive call of the trap with 'a' replaced by 'r.a' and 'c' replaced by (peg c 7). - Examples: + If so, produce the recursive call of the trap with 'a' + replaced by 'l.a' and 'c' replaced by (peg c 6). + Else, produce the recursive call of the trap with 'a' + replaced by 'r.a' and 'c' replaced by (peg c 7). + +####Examples + ~talsur-todres/try=> =a (sa `(list ,@)`[1 2 3 4 5 6 7 ~]) ~talsur-todres/try=> a {5 4 7 6 1 3 2} @@ -2815,12 +3042,16 @@ section 2dA, sets [~ 14] ~talsur-todres/try=> (~(dig in a) 6) [~ 2] - +- gas - concatenate - Description: - Accepts a list 'b' with members of the same type as the set 'a' and produces - the union set of 'a' and 'b'. - --- + +--- + +##+- gas + +Accept a list 'b' with members of the same type as the set 'a' and produce +the union set of 'a' and 'b'. + +####Summary + Activate jet. Creates a dry %gold gate which accepts a list of elements of the same type as 'a'. Creates and kicks a dry %gold trap whose result is cast to the type of 'a'. @@ -2828,7 +3059,9 @@ section 2dA, sets If so, produce 'a'. Else, recursively call the trap with 'b' replaced by the tail of 'b' and the head of 'b' put into 'a'. - Examples: + +####Examples + ~tadbyl-hilbel/try=> b {'bonita' 'madeleine' 'rudolf' 'john'} ~tadbyl-hilbel/try=> (~(gas in b) `(list ,@t)`['14' 'things' 'number' '1.337' ~]) @@ -2836,11 +3069,15 @@ section 2dA, sets --- ~tadbyl-hilbel/try=> (~(gas in s) `(list ,@t)`['1' '2' '3' ~]) {'1' '3' '2' 'e' 'd' 'a' 'c' 'b'} - +- has - b exists in a check - Description: - Accepts any noun and produces the loobean indicating whether or not that value (n.a) exists in 'a'. - --- + +--- + +##+- has + +Accepts any noun and produces the loobean indicating whether or not that value (n.a) exists in 'a'. + +####Summary + Activate jet. Creates a wet %gold gate which accepts any noun. Creates and kicks a dry %gold trap. Casts the result to a loobean. @@ -2850,15 +3087,23 @@ section 2dA, sets Else, build an if-then-else statement on the h-order of 'b' and 'n.a' If so, produce the recursive call to the trap with 'a' replaced by 'l.a' If so, produce the recursive call to the trap with 'a' replaced by 'r.a' - Examples: + +####Examples + ~dovryp-toblug/try=> =a (~(gas in `(set ,@t)`~) `(list ,@t)`[`a` `b` `c` ~]) ~dovryp-toblug/try=> (~(has in a) `a`) %.y ~dovryp-toblug/try=> (~(has in a) 'z') %.n - +- put - Accept any noun 'b' and produce the set 'a' with 'b' added to its sorted location. - --- + +--- + +##+- put + +Accept any noun 'b' and produce the set 'a' with 'b' added to its sorted location. + +####Summary + Activate jet. Creates a wet %gold gate which accepts any atom. Creates and kicks a dry %gold gate. Casts the result to the type of set 'a'. @@ -2878,16 +3123,24 @@ section 2dA, sets Builds an if-then-else statement on the v-order of 'n.a' and 'n.c' If so, produce [n.a l.a c] Else, produce [n.c [n.a l.a l.c] r.c]. - Examples: + +####Examples + ~talsur-todres/try=> =a (~(gas in `(set ,@t)`~) `(list ,@t)`[`a` `b` `c` ~]) ~talsur-todres/try=> =b (~(put in a) `d`) ~talsur-todres/try=> b {`d` `a` `c` `b`} ~talsur-todres/try=> -.l.+.b n=`d` - +- rep - Accept a noun and a binary gate. Produce the 'a' with each member 'n.a' replaced by (c n.a b). - --- + +--- + +##+- rep + +Accept a noun and a binary gate. Produce the 'a' with each member 'n.a' replaced by (c n.a b). + +####Summary + XXX Creates a wet %gold gate which accpets a noun and a tile, 'a' and 'b'. Creates and kicks a dry %gold gate. @@ -2895,18 +3148,23 @@ section 2dA, sets Else, recursively call the trap with 'a' replaced by 'r.a' and 'b' replaced by the recursive call of the trap with 'a' replaced by 'l.a' and 'b' replaced by (c n.a b). - --- + +####Examples + ~talsur-todres/try=> =a (~(gas in *(set ,@)) [1 2 3 ~]) ~talsur-todres/try=> a {1 3 2} ~talsur-todres/try=> (~(rep in a) 0 |=([a=@ b=@] (add a b))) 6 - --- - XXX - - +- tap - Accept a list of elements of the set and produce a cell of the set with the list concatenated. - --- + +--- + +##+- tap + +Accept a list of elements of the set and produce a cell of the set with the list concatenated. + +####Summary + Activate jet. Build dry %gold gate with sample list of the same Cast the following to the type of `b` @@ -2914,21 +3172,27 @@ section 2dA, sets Then: Produce `b`, Else: Produce the toss of `a` for `r.a`, `b` for [n.a $(a l.a)]), where $(a l.a) is the toss of `a` for the left twig of `a`. - --- + +####Examples + ~tadbyl-hilbel/try=> =s (sa `(list ,@t)`['a' 'b' 'c' 'd' 'e' ~]) ~tadbyl-hilbel/try=> s {'e' 'd' 'a' 'c' 'b'} - --- ~tadbyl-hilbel/try=> (~(tap in s) `(list ,@t)`['1' '2' '3' ~]) ~['b' 'c' 'a' 'd' 'e' '1' '2' '3'] - --- ~tadbyl-hilbel/try=> b {'bonita' 'madeleine' 'daniel' 'john'} ~tadbyl-hilbel/try=> (~(tap in b) `(list ,@t)`['david' 'people' ~]) ~['john' 'daniel' 'madeleine' 'bonita' 'david' 'people'] - +- wyt - Produce the cardinality (number of elements) of the set. - --- + +--- + +##+- wyt + +Produce the cardinality (number of elements) of the set. + +####Summary + Increment the following. Kick dry %gold trap. Yield atom. If: `a` is null, @@ -2936,19 +3200,22 @@ section 2dA, sets Else: Produce the increment of the sum of: The toss of `a` for `l.a`, the left twig of `a`. The toss of `a` for `r.a`, the right twig of `a`. - --- + +####Examples + ~talsur-todres/try=> =a (~(gas in `(set ,@t)`~) `(list ,@t)`[`a` `b` `c` ~]) ~talsur-todres/try=> ~(wyt in a) 4 - --- ~tadbyl-hilbel/try=> b {'bonita' 'madeleine' 'daniel' 'john'} ~tadbyl-hilbel/try=> ~(wyt in b) 5 -section 2dB, maps +--- +section 2dB, maps +--- -++ ept +##++ ept Is the given tree of cell pairs a map? @@ -2981,188 +3248,220 @@ Is the given tree of cell pairs a map? ~tadbyl-hilbel/try=> (ept b) ! type-fail ! exit -++ ja + +--- + +##++ ja The jar engine: A container arm for jar operation arms. Jars are maps of lists. The contained arms inherit the sample jar. 'a'. Build a wet %gold tray with a sample jar `a`... - +- get +--- - Retrieve a list from the map by its key. +##+- get - ####Summary +Retrieve a list from the map by its key. - Build wet %gold gate with sample noun `b` - Push `d` is the slug of by to get with `a` slammed with `b`. - If: `c` is null, - Then: Produce null, - Else: Produce `u.c`, the unit value of `c` +####Summary - ####Examples - - ~zod/try=> =l (mo `(list ,[@t (list ,@)])`[['a' `(list ,@)`[1 2 3 ~]] ['b' `(list ,@)`[4 5 6 ~]] ~]) - ~zod/try=> l - {[p='a' q=~[1 2 3]] [p='b' q=~[4 5 6]]} - ~zod/try=> (~(get ja l) 'a') - ~[1 2 3] - ~zod/try=> (~(get ja l) 'b') - ~[4 5 6] - ~zod/try=> (~(get ja l) 'c') - ~ - - +- add - - Add a key-list value to the jar. + Build wet %gold gate with sample noun `b` + Push `d` is the slug of by to get with `a` slammed with `b`. + If: `c` is null, + Then: Produce null, + Else: Produce `u.c`, the unit value of `c` - ####Summary +####Examples + + ~zod/try=> =l (mo `(list ,[@t (list ,@)])`[['a' `(list ,@)`[1 2 3 ~]] ['b' `(list ,@)`[4 5 6 ~]] ~]) + ~zod/try=> l + {[p='a' q=~[1 2 3]] [p='b' q=~[4 5 6]]} + ~zod/try=> (~(get ja l) 'a') + ~[1 2 3] + ~zod/try=> (~(get ja l) 'b') + ~[4 5 6] + ~zod/try=> (~(get ja l) 'c') + ~ - Build wet %gold gate with sample noun `b`, noun `c` - Push `d` is the call of get with the subject replaced by `a`, slammed with `b` - Produce the slam of by to put with `a` slammed with `b` and [c d]. +--- - ####Examples +##+- add - ~zod/try=> =l (mo `(list ,[@t (list ,@)])`[['a' `(list ,@)`[1 2 3 ~]] ['b' `(list ,@)`[4 5 6 ~]] ~]) - ~zod/try=> l - {[p='a' q=~[1 2 3]] [p='b' q=~[4 5 6]]} - ~zod/try=> (~(add ja l) 'b' 7) - {[p='a' q=~[1 2 3]] [p='b' q=~[7 4 5 6]]} - ~zod/try=> (~(add ja l) 'a' 100) - {[p='a' q=~[100 1 2 3]] [p='b' q=~[4 5 6]]} - ~zod/try=> (~(add ja l) 'c' 7) - {[p='a' q=~[1 2 3]] [p='c' q=~[7]] [p='b' q=~[4 5 6]]} - ~zod/try=> (~(add ja l) 'c' `(list ,@)`[7 8 9 ~]) - ! type-fail - ! exit +Add a key-list value to the jar. - Terminate the core. - -++ ju +####Summary + + Build wet %gold gate with sample noun `b`, noun `c` + Push `d` is the call of get with the subject replaced by `a`, slammed with `b` + Produce the slam of by to put with `a` slammed with `b` and [c d]. + +####Examples + + ~zod/try=> =l (mo `(list ,[@t (list ,@)])`[['a' `(list ,@)`[1 2 3 ~]] ['b' `(list ,@)`[4 5 6 ~]] ~]) + ~zod/try=> l + {[p='a' q=~[1 2 3]] [p='b' q=~[4 5 6]]} + ~zod/try=> (~(add ja l) 'b' 7) + {[p='a' q=~[1 2 3]] [p='b' q=~[7 4 5 6]]} + ~zod/try=> (~(add ja l) 'a' 100) + {[p='a' q=~[100 1 2 3]] [p='b' q=~[4 5 6]]} + ~zod/try=> (~(add ja l) 'c' 7) + {[p='a' q=~[1 2 3]] [p='c' q=~[7]] [p='b' q=~[4 5 6]]} + ~zod/try=> (~(add ja l) 'c' `(list ,@)`[7 8 9 ~]) + ! type-fail + ! exit + +--- + + Terminate the core. + +--- + +##++ ju The jug engine: container arm for jug operation arms. Jugs are maps of sets. The contained arms inherit it's sample jug, 'a'. Build a wet %gold tray with a sample jug `a`. - +- del +##+- del - Delete a value in a set and produce the resulting jug. +Delete a value in a set and produce the resulting jug. - ####Summary +####Summary - Build wet %gold gate with sample noun `b`, noun `c` - Cast the following to the type of `a` - Push `d` is the call of get with the subject replaced by `a`, slammed with `b` - Push `e` is slug del to in by `d` slammed with `c` - If: `e` is null, - Then: Slug tray by to del with `a` slammed with `b` - Else: Produce the slug tray by to put with `a` slammedw ith `b`, `e`. + Build wet %gold gate with sample noun `b`, noun `c` + Cast the following to the type of `a` + Push `d` is the call of get with the subject replaced by `a`, slammed with `b` + Push `e` is slug del to in by `d` slammed with `c` + If: `e` is null, + Then: Slug tray by to del with `a` slammed with `b` + Else: Produce the slug tray by to put with `a` slammedw ith `b`, `e`. - ####Examples +####Examples - ~zod/try=> s - {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} - ~zod/try=> (~(del ju s) 'a' 1) - {[p='a' q={3 2}] [p='b' q={5 4 6}]} - ~zod/try=> (~(del ju s) 'c' 7) - {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} + ~zod/try=> s + {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} + ~zod/try=> (~(del ju s) 'a' 1) + {[p='a' q={3 2}] [p='b' q={5 4 6}]} + ~zod/try=> (~(del ju s) 'c' 7) + {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} - +- get +--- - Retrieve a set from the map by its key. ++- get - ####Summary +Retrieve a set from the map by its key. - Build wet %gold gate with sample noun `b` - Push `c` is the slug of by to get with `a` slammed with `b` - If: `c` is null, - Then: Produce null, - Else: Produce `u.c`, the unit value of `c` +####Summary - ####Examples + Build wet %gold gate with sample noun `b` + Push `c` is the slug of by to get with `a` slammed with `b` + If: `c` is null, + Then: Produce null, + Else: Produce `u.c`, the unit value of `c` - ~zod/try=> s - {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} - ~zod/try=> (~(get ju s) 'a') - {1 3 2} - ~zod/try=> (~(get ju s) 'b') - {5 4 6} - ~zod/try=> (~(get ju s) 'c') - ~ - - +- has +####Examples - Is the element `c` in the set `b`? + ~zod/try=> s + {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} + ~zod/try=> (~(get ju s) 'a') + {1 3 2} + ~zod/try=> (~(get ju s) 'b') + {5 4 6} + ~zod/try=> (~(get ju s) 'c') + ~ + +--- - ####Summary +##+- has - Build wet %gold gate with sample noun `b`, noun `c` - Yield bean. - Produce the slug of in to has with the call of get with the subject replaced by `a` slammed with: - `b`, a set, slammed with: - `c`. - I.e.: Check if `c` is in the set which is the value of the map key `b`. +Is the element `c` in the set `b`? - ####Examples +####Summary - ~zod/try=> s - {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} - ~zod/try=> (~(has ju s) 'a' 3) - %.y - ~zod/try=> (~(has ju s) 'b' 6) - %.y - ~zod/try=> (~(has ju s) 'a' 7) - %.n - ~zod/try=> (~(has jus s) 'c' 7) - ! -find-limb.jus - ! find-none - ! exit - ~zod/try=> (~(has ju s) 'c' 7) - %.n + Build wet %gold gate with sample noun `b`, noun `c` + Yield bean. + Produce the slug of in to has with the call of get with the subject replaced by `a` slammed with: + `b`, a set, slammed with: + `c`. + I.e.: Check if `c` is in the set which is the value of the map key `b`. - +- put +####Examples - Add a value to a specific set in the jug. + ~zod/try=> s + {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} + ~zod/try=> (~(has ju s) 'a' 3) + %.y + ~zod/try=> (~(has ju s) 'b' 6) + %.y + ~zod/try=> (~(has ju s) 'a' 7) + %.n + ~zod/try=> (~(has jus s) 'c' 7) + ! -find-limb.jus + ! find-none + ! exit + ~zod/try=> (~(has ju s) 'c' 7) + %.n - ####Summary +--- - Build wet %gold gate with sample noun b. noun c. - Cast the following to the type of `a`. - Push `d` is the call of get with the subject replaced by `a`, slammed with `b`. - Produce the slug of by to put with `a` slammed with: - `b`, - The slug of in to put by `d` slammed with `c`. +##+- put - ####Examples +Add a value to a specific set in the jug. - ~zod/try=> s - {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} - ~zod/try=> (~(put ju s) 'a' 7) - {[p='a' q={7 1 3 2}] [p='b' q={5 4 6}]} - ~zod/try=> (~(put ju s) 'a' 1) - {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} - ~zod/try=> (~(put ju s) 'c' 7) - {[p='a' q={1 3 2}] [p='c' q={7}] [p='b' q={5 4 6}]} +####Summary + + Build wet %gold gate with sample noun b. noun c. + Cast the following to the type of `a`. + Push `d` is the call of get with the subject replaced by `a`, slammed with `b`. + Produce the slug of by to put with `a` slammed with: + `b`, + The slug of in to put by `d` slammed with `c`. + +####Examples + + ~zod/try=> s + {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} + ~zod/try=> (~(put ju s) 'a' 7) + {[p='a' q={7 1 3 2}] [p='b' q={5 4 6}]} + ~zod/try=> (~(put ju s) 'a' 1) + {[p='a' q={1 3 2}] [p='b' q={5 4 6}]} + ~zod/try=> (~(put ju s) 'c' 7) + {[p='a' q={1 3 2}] [p='c' q={7}] [p='b' q={5 4 6}]} + +--- + +##++ by + +Container arm for map operation arms. The contained arms inherit it's sample map, 'a'. + +####Summary -++ by - Container arm for map operation arms. The contained arms inherit it's sample map, 'a'. - --- Activate jet. - Builds a %gold tray with a sample which accepts a map. - +- all - Accepts a gate which accepts any noun and produces a loobean. Slams the gate with each member - of map 'a', produce the logical AND of the transformed map. - --- + Build a %gold tray with a sample which accepts a map. + +--- + +##+- all + +Accept a gate which accepts any noun and produces a loobean. Slams the gate with each member +of map 'a', produce the logical AND of the transformed map. + +####Summary + Activate jet. - Builds a wet %gold gate which accepts the tile of a gate accepts any noun and produces a loobean. - Creates and kicks a dry %gold gate. Casts the result to loobean. - Builds an if-then-else statement on "a is an atom." - If so, produce true. - Else, produce the logical AND of (b q.n.a), the recursive call of the trap with 'a' replaced by - 'l.a', and the recursive call of the trap with 'a' replaced by 'r.a'. - Examples: + Build wet %gold gate with sample gate accepting any noun and producing a loobean, `b`. + Kick dry %gold trap. Yield bean. + If: `a` is null, + Then: Produce true, + Else: Produce the logical AND of: + `b` slammed with `q.n.a` + The toss of `a` for `l.a` + The toss of `a` for `r.a` + +####Examples + ~talsur-todres/try=> =b (mo `(list ,[@t *])`[['a' 1] ['b' [2 3]] ~]) ~talsur-todres/try=> (~(all by b) |=(a=* ?@(a & |))) %.n @@ -3172,18 +3471,27 @@ The contained arms inherit it's sample jug, 'a'. %.y ~tadbyl-hilbel/try=> (~(all by a) |=(a=@ (lte a 4))) %.n - +- any - Accepts a gate which accepts any noun and produces a loobean. Slams the gate with each member - of map 'a', produce the logical OR of the transformed map. - --- + +--- + +##+- any + +Accept a gate which accepts any noun and produces a loobean. Slam the gate with each member +of map 'a' and produce the logical OR of the transformed map. + +####Summary + Activate jet. - Builds a wet %gold gate which accepts the tile of a gate accepts any noun and produces a loobean. - Creates and kicks a dry %gold gate. Casts the result to loobean. - Builds an if-then-else statement on "a is an atom." - If so, produce false. - Else, produce the logical OR of (b q.n.a), the recursive call of the trap with 'a' replaced by - 'l.a', and the recursive call of the trap with 'a' replaced by 'r.a'. - Examples: + Kick dry %gold trap. Yield bean. + If: `a` is null, + Then: Produce false, + Else: Produce the logical OR of: + `b` slammed with `q.n.a` + The toss of `a` for `l.a` + The toss of `a` for `r.a` + +####Examples + ~talsur-todres/try=> =b (mo `(list ,[@t *])`[['a' 1] ['b' [2 3]] ~]) ~talsur-todres/try=> (~(all by b) |=(a=* ?@(a & |))) %.y @@ -3191,184 +3499,439 @@ The contained arms inherit it's sample jug, 'a'. ~tadbyl-hilbel/try=> =a (mo `(list ,[@t @u])`[['a' 1] ['b' 2] ['c' 3] ['d' 4] ['e' 5] ~]) ~tadbyl-hilbel/try=> (~(any by a) |=(a=@ (lte a 4))) %.y - +- del - delete at key b - Description: - Accepts a noun 'b', producing the map with the key-value pair of key 'b' removed. - --- + +--- + +##+- del + +Accept a noun 'b', producing the map with the key-value pair of key 'b' removed. + +####Summary + Activate jet. - Creates a wet %gold gate which accepts a noun. - Creates and kicks a dry %gold trap. Casts the result to the type of map 'a'. - Builds an if-then-else statement on "a is null." - If so, produce null. - Else, build an unless-then-else statement on (b=(p.n.a)). - If so, build the if-then-else statement on the g-order of 'b' and 'p.n.a'. - If so, produce the the tuple [n.a $(a l.a) r.a] where $(a l.a) is the recursive call of the - trap with 'a' replaced by 'l.a'. - Else (g-order of 'b' and 'p.n.a' is not true.), produce [n.a l.a $(a r.a)]. - Else (!(b=(p.n.a))), create and kick a dry %gold trap. - Cast the result to a fork between null and the tile of the map 'a'. - Builds an if-then-else statement on "l.a is null." If so, produce 'r.a'. - Else, build an if-then-else statement on "r.a is null." If so, produce 'l.a'. - Else, build an if-then-else statement on the v-order of 'p.n.l.a' and 'p.n.r.a'. - If so, produce [n.l.a l.l.a $(l.a r.l.a)],where $(l.a r.l.a) is the recursive call of the - trap with 'l.a' replaced by 'r.l.a'. - Else, produce [n.r.a $(r.a l.r.a) r.r.a], ,where $(r.a l.r.a) is the recursive call of the - trap with 'r.a' replaced by 'l.r.a'. - Examples: - ~talsur-todres/try=> =b (mo `(list ,[@t *])`[['a' 1] ['b' [2 3]] ~]) + Build wet %gold gate with sample noun `b`. + Kick dry %gold trap. Cast the following to the type of `a`. + If: `a` is null, + Then: Produce null, + Else: Unless: `b` is `p.n.a` + Then: If: gor slammed with `b`, `p.n.a` + Then: Produce the tuple [n.a $(a l.a) r.a] + Else: Produce the tuple [n.a l.a $(a r.a)] + Else: Kick dry %gold trap. Yield either null or the type of `a`. + If: `l.a` is null, Then: Produce `r.a`, + Else: If: `r.a` is null, Then: Produce `l.a`, + ELse: If: vor slammed with `p.n.l.a` and `p.n.r.a`, + Then: Produce the tuple [n.l.a l.l.a $(l.a r.l.a)] + Else: [n.r.a $(r.a l.r.a) r.r.a] + +####Examples + + ~talsur-todres/try=> =b (mo `(list ,[@t *])`[['a' 1] ['b' [2 3]] ~]) ~talsur-todres/try=> (~(del by b) `a`) {[p=`b` q=[2 3]]} - +- dig - axis of 'b' key - Description: - Accepts any noun 'b' and produces the axis of 'b' in within the values of 'p.a' in map 'a'. - --- +--- + +##+- dig + +Accept any noun 'b' and produce the axis of 'b' in within the values of 'p.a' in map 'a'. + +####Summary + Creates a wet %gold gate which accepts a noun. - Let 'c' be 1. - Creates and kicks a dry %gold gate. Casts the result to an atomic unit. - Builds an if-then-else statement on "a is null." If so, produce null. - Else, build an if-then-else statement on (b=(p.n.a.)). If so, produce the unit [~ u=(peg c 2)]. - Else, build an if-then-else statement on the g-order of 'b' and 'p.n.a'. - If so, recursively call the trap with 'a' replaced by 'l.a' and 'c' by (peg c 6). - Else, recursively call the trap with 'a' replaced by 'r.a' and 'c' by (peg c 7). - Examples: + Push `c` is 1. + Kick dry %gold gate. Yield atomic unit. + If: `a` is null, Then: Produce null. + Else: If: `b` is `p.n.a`, Then: Produce the unit with value: peg slammed with `c`, 2. + Else: If: gor slammed with `b`, `p.n.a`. + Then: Produce the toss of `a` for `l.a`, `c` for peg slammed with `c`, 6. + Else: Produce the toss of `a` for `r.a`, `c` for peg slammed with `b, 7. + +####Examples + ~talsur-todres/try=> =b (mo `(list ,[@t *])`[['a' 1] ['b' [2 3]] ~]) ~talsur-todres/try=> (~(dig by b) `b`) [~ 2] - +- gas - concatenate - Description: - Accepts any list 'b' of key-value pair cells and produces the map 'a' with the members of 'b' added. - --- +--- + +##+- gas + +Accept any list 'b' of key-value pair cells and produce the map 'a' +with the members of 'b' added. + +####Summary + Activate jet. - Creates a wet %gold gate which accepts a list of cells. - Replaces 'b' in the subject with the cast of 'b' to a list whose members have the - same type as the members of 'a'. - Creates and kicks a dry %gold trap. Casts the result to the type of map 'a'. - Builds an if-then-else statement on "b is an atom." - If so, produce 'a'. - Else, recursively call the trap iwth 'b' replaced by the tail of 'b' and 'a' replaced by - 'a' with the key and value of the head of 'b' added to it. - Examples: + Build wet %gold gate with sample list of noun cells [p=* q=*], `b`. + Use `b` replaced by the cast of `b` to the type of the map as subject. + Kick dry %gold trap. Cast the following to the type of the map `a`. + If: `b` is null, + Then: Produce `a`, + Else: Produce the toss of `b` for the tail of `b`, `a` for the cell at the head of `b` + inserted into the map as a `p`, `q` key, value pair. + +####Examples + ~talsur-todres/try=> =a (mo `(list ,[@t *])`[[`a` 1] [`b` 2] ~]) ~talsur-todres/try=> =b `(list ,[@t *])`[[`c` 3] [`d` 4] ~] ~talsur-todres/try=> (~(gas by a) b) {[p=`d` q=4] [p=`a` q=1] [p=`c` q=3] [p=`b` q=2]} - +- get - grab value by key - Description: - Produces the value in the map at key 'b'. - --- - Creates a wet %gold gate which accepts a noun. - Creates and kicks a dry %gold trap. Casts its result to the type of the map's values. - Builds an if-then-else statement on "a is an atom." - If so, produces null. - Else, build an if-then-else statement on (b=(p.n.a)). - If so, produce the unit [~ u=p.n.a]. - Else, build an if-then-else statement on the g-order of 'b' and 'p.n.a'. - If so, produce the recursive call to the trap with 'a' replaced by 'l.a'. - Else, produce the recursive call to the trap with 'a' replaced by 'r.a'. - Examples: + +--- + +##+- get + +Produce the value in the map at key 'b'. + +####Summary + + Activate jet. + Build wet %gold gate with sample noun `b`. + Kick dry %gold gate. Yield a unit of the type of the map's values. + If: `a` is null, + Then: Produce null, + Else: If: Is `b` equal to `p.n.a`? + Then: Produce the unit of the value of the tree node, `q.n.a` + Else: If: gor slammed with `b`, `p.n.a` + Then: Produce the toss of `a` for `l.a`, + Else: Produce the toss of `a` for `r.a`. + +####Examples + ~talsur-todres/try=> =b (mo `(list ,[@t *])`[['a' 1] ['b' [2 3]] ~]) ~talsur-todres/try=> (~(get by b) `b`) [~ [2 3]] - +- has - key existence check - Description: - Accepts any noun 'b' and produces the loobean indicating whether the noun exists in map 'a'. - --- + +--- + +##+- got + +####Summary + + Build wet %gold gate with sample noun `b`. + Produce the slam of need with: + The slam get with its sample replaced by `a` with `b`. + +####Examples + + ~zod/try=> =m (mo `(list ,[@t *])`[['a' 1] ['b' 2] ~]) + ~zod/try=> m + {[p='a' q=1] [p='b' q=2]} + ~zod/try=> (~(get by m) 'a') + [~ 1] + ~zod/try=> (~(got by m) 'a') + 1 + ~zod/try=> (~(got by m) 'c') + ! exit + +--- + +##+- has + +Accept any noun 'b' and produces the loobean indicating whether the noun exists in map 'a'. + +####Summary + Activate jet. - Creates a wet %gold gate which accepts a noun. - Attempts to get 'b' from 'a', then produces the logical NOT of the loobean "get 'b' in 'a' is null" - Examples: + Build wet %gold gate with smaple noun `b`. + Build dry %gold gate with null sample. + Produce the slam of get with its sample replaced by `a` with `b`. + +####Examples + ~talsur-todres/try=> =b (mo `(list ,[@t *])`[['a' 1] ['b' [2 3]] ~]) ~talsur-todres/try=> (~(has by b) `b`) %.y ~talsur-todres/try=> (~(has by b) `c`) %.n - +- mar - add with validation - Description: - Accepts two nouns of the types of the map's keys and values, respectively. - Validates that the value is not null and puts the pair in the map. If the value is null, - it deletes the key. - --- - Creates a wet %gold gate which accepts a cell of two nouns: one of the type of the map's keys - and one a unit of the map's value type. - If "c is null", produce the map with 'b' deleted. - Else, produce the map with the 'b' and 'u.c' key-value pair added. - Examples: - - +- put - - --- + +--- + +##+- int + +Produce the intersection of two maps of the same type. + +####Summary + + Activate jet. + Build wet %gold gate with sample map of the type of `a`, `b`. + Kick dry %gold trap. Cast the following to the type of `a`. + If: `b` is null, + Then: Produce null, + Else: If: vor slammed with `p.n.a` and `p.n.b`, + Then: If: `p.n.b` is `p.n.a` + Then: Produce the tuple [n.b $(a l.a, b l.b) $(a r.a, b r.b)] + Else: If: hor slammed with `p.n.b` and `p.n.a`, + Then: Slam uni(+< $(a l.a, b [n.b l.b ~])) with $(b r.b) + Else: Slam uni(+< $(a r.a, b [n.b ~ r.b])) with $(b l.b) + Else: If: `p.n.a` is `p.n.b` + Then: Produce [n.b $(b l.b, a l.a) $(b r.b, a r.b)]A + Else: If: hor slammed with `p.n.a` p.n.b` + Then: Slam uni(+< $(b l.b, b [n.b l.b ~])) with $(a r.a) + Else: Slam uni(+< $(b r.b, b [n.b ~ r.b])) with $(a l.a) + + Where uni(+< $(b r.b, b [n.b ~ r.b])) is the call of uni with the map + replaced by the toss of `b` for `r.b` and `b` for [n.b ~ r.b]. + +####Examples + + ~zod/try=> =n (mo `(list ,[@t *])`[['a' 1] ['c' 3] ~]) + ~zod/try=> n + {[p='a' q=1] [p='c' q=3]} + ~zod/try=> m + {[p='a' q=1] [p='b' q=2]} + ~zod/try=> (~(int by m) n) + {[p='a' q=1]} + ~zod/try=> =o (mo `(list ,[@t *])`[['c' 3] ['d' 4] ~]) + ~zod/try=> (~(int by m) o) + {} + +--- + +##+- mar + +Accept a noun and a unit of a noun of the type of the map's keys and values, respectively. +Validate that the value is not null and put the pair in the map. If the value is null, +delete the key. + +####Summary + + Build wet %gold gate with sample noun of the type of the map's keys, `b`, + the unit of the type of the map's values `c`. + If: `c`, + Then: Delete `b` from the map. + Else: Put key `b` in the map with the value of the unit `c`, `u.c`. + +####Examples + + XXX This arm appears to be broken. + ~zod/try=> m + {[p='a' q=1] [p='b' q=2]} + ~zod/try=> (~(mar by m) 'c' (some 3)) + ! -find-limb.n + ! find-none + ! exit + ~zod/try=> (~(mar by m) 'c' ~) + ! -find-limb.n + ! find-none + ! exit + ~zod/try=> (~(mar by m) 'b' ~) + ! -find-limb.n + ! find-none + ! exit + +--- + +##+- put + +Add a key-value pair to the map. + +####Summary + Activate jet. Build a wet %gold gate with sample noun `b`, noun `c` Creates and kicks a dry %gold trap. Casts the result to the type of the map 'a'. If "a is an atom", produce the cell [[b c] ~ ~]. Else, build the if-then-else statement if - --- - - +- rep - replace by product - Description: - Walks through the map, replacing 'b' with the product of (c n.a b). Produces the resulting - map. - --- - Creates a wet %gold gate which accepts a noun and a gate. - Creates and kicks a dry %gold trap. - If "a is null", produce 'b'. - Else, produce the recursive call to the trap with 'a' replaced by 'r.a' and 'b' replaced by - the recursive call to the trap with 'a' replaced by 'l.a' and b replaced by - the product (c n.a b). - Examples: - - +- rib - transform + product - Description: - - --- - Examples: +####Examples + + ~zod/try=> m + {[p='a' q=1] [p='b' q=2]} + ~zod/try=> (~(put by m) 'c' 3) + {[p='a' q=1] [p='c' q=3] [p='b' q=2]} + ~zod/try=> (~(put by m) "zod" 26) + ! type-fail + ! exit + ~zod/try=> (~(put by m) 'a' 2) + {[p='a' q=2] [p='b' q=2]} + +--- + +##+- rep + +Walk through the map, replacing 'b' with the product of (c n.a b). Produce the resulting +map. + +####Summary + + Build wet %gold gate with sample noun `b`, gate `c` + Kick dry %gold trap. + If: `a` is null, Then: Produce `b`, + Else: Produce the toss of `a` for `r.a`, `b` for the toss of `a` for `l.a` and `b` + for the slam of `c` with `n.a` and `b`. + +####Examples + +--- + - +- run - turns to tuples - Description: - --- - Examples: - +- tap - listify pairs - Description: - --- - Examples: - +- uni - union, merge - Description: - --- - Examples: - +- wyt - depth of map - Description: - --- - Examples: +##+- rib + +Walk throught the map, replacing the values n.a with the product of (c n.a b) and produce +the transformed map with the accumulated. `b`. + +####Summary + + Build wet %gold gate with sample noun `b`, gate `c`. + Kick dry %gold trap. Cast the following to the type of the tuple [b a]. + If: `a` is null, Then: Produce the tuple [b ~], + Else: Push `d` is the slam of `c` with `n.a` and `b`. + Set `n.a` to `+.d`, the tail of `d`, in the subject. + Push `e` is the toss of `a` for `l.a`, `b` for `-.d`, the head of `d`. + Push `f` is the toss of `a` for `r.a`, `b` for `-.e`, the head of `e`. + Produce the tuple [-.f [n.a +.e +.f]], that is, the cell of + the head of accumulator `f` and the head of tree [n.a +.e +.f], with + left and right sides of the tails of `e` nad `f`, respectively. + + +####Examples + + +--- + +##+- run + +####Summary + +####Examples + +--- + +##+- tap + +####Summary + +####Examples + +--- + +##+- uni + +Produce the union between two maps. + +####Summary + + Acitvate jet. + Build wey %gold gate with sample map of the type of `a`, `b`. + Kick dry %gold gate. Cast the following to the type of `a`. + If: `b` is null, + Then: Produce `a`, + Else: If: `a` is null, + Then: Produce `b`, + Else: If: vor slammed with `p.n.a` and `p.n.b` + Then: If: `p.n.b` is `p.n.a` + Then: Produce the tuple [n.b $(a l.a, b l.b) $(a r.a, b r.b)] + Else: If: hor slammed with `p.n.b` and `p.n.b` + Then: Produce the toss of `a` for the tree map root: + [n.a $(a l.a, b [n.b l.b ~]) r.a], + `b` for `r.b`. + Else: Produce the toss of `a` for the tree map root: + [n.a l.a $(a r.a, b [n.b ~ r.b])], + `b` for `l.b`. + Else: If: `p.n.a` is `p.n.b`, + Then: Produce the tree map root: + [n.b $(b l.b, a l.a) $(b r.b, a r.a)] + Else: If: hor slammed `p.n.a` and `p.n.b`, + Then: Produce the toss of `b` for: + The tree map root of [n.b $(b l.b, a [n.a l.a ~]) r.b], + `a` for `r.a` + Else: Produce the toss of `b` for: + The tree map root of [n.b l.b $(b r.b, a [n.a ~ r.a])], + `a` for `l.a` + +####Examples + + ~zod/try=> m + {[p='a' q=1] [p='b' q=2]} + ~zod/try=> o + {[p='d' q=4] [p='c' q=3]} + ~zod/try=> (~(uni by m) o) + {[p='d' q=4] [p='a' q=1] [p='c' q=3] [p='b' q=2]} + ~zod/try=> (~(uni by m) ~) + {[p='a' q=1] [p='b' q=2]} + ~zod/try=> n + {[p='a' q=1] [p='c' q=3]} + ~zod/try=> (~(uni by o) n) + {[p='d' q=4] [p='a' q=1] [p='c' q=3]} + +--- + +##+- urn + +Turn over the values of the map and produce the tranformed map. + +####Summary + + Build wet %gold gate with sample gate accepting two nouns and producing a noun, `b`. + Kick dry %gold trap. + If: `a` is null, + Then: Produce null, + Else: Produce the tuple [n=[p=p.n.a q=(b p.n.a q.n.a)] l=$(a l.a) r=$(a r.a)] + The root of the tree map with the value:A + The slam of `b` of with `p.n.a` and `q.n.a` + The left and right trees are the toss of `a` for their respective maps. + +####Examples + + ~zod/try=> m + {[p='a' q=1] [p='b' q=2]} + ~zod/try=> (~(urn by m) |=(a=[p=* q=*] q.a)) + {[p='a' q=1] [p='b' q=2]} + ~zod/try=> (~(urn by m) |=(a=[p=* q=*] 7)) + {[p='a' q=7] [p='b' q=7]} + ~zod/try=> (~(urn by m) |=(a=[p=* q=*] p.a)) + {[p='a' q=97] [p='b' q=98]} + +--- + +##+- wyt + +Produce the depth of the tree map. + +####Summary + + Increment the following. + Kick dry %gold trap. Yield an atom. + If: `a` is null, + Then: Produce 0, + Else: Produce the increment of the sum of: + The toss of `a` for `l.a`, + the toss of `a` for `r.a`. + +####Examples + + ~zod/try=> m + {[p='a' q=1] [p='b' q=2]} + ~zod/try=> o + {[p='d' q=4] [p='c' q=3]} + ~zod/try=> ~(wyt by m) + 3 + ~zod/try=> ~(wyt by o) + 3 + ~zod/try=> ~(wyt by (~(uni by m) o)) + 5 + +--- section 2dC, queues -++ to - queue engine - Description: - Container arm for queue operation arms. The contained arms inherit it's sample queue, 'a'. - --- - Builds a wet %gold tray with sample 'a' of type 'qeu'. - +- bal - v-order queue - Description: - Walks through the queue using vor (v-order check) on all eleements. - --- +##++ to + +Container arm for queue operation arms. The contained arms inherit it's sample queue, 'a'. + +####Summary + + Build wet %gold tray with sample 'a' of type 'qeu'. + +##+- bal + +Walks through the queue using vor (v-order check) on all eleements. + +####Summary + Creates and kicks a dry %gold trap. Casts the result to the type of the queue 'a'. If "a is null", produce null. Else, build an unless-then-else statement on the logical OR of: @@ -3379,24 +3942,30 @@ section 2dC, queues "null is in r.a" "n.a" precedes "n.r.a" in v-order. If so, produce the recursvie call to the trap with 'a' replaced by [n.r.a $(a [n.a l.a l.r.a]) r.r.a]. - Examples: + +####Examples + ~palryp-hocsyt/try=> =a (~(gas to `(qeu ,@)`~) `(list ,@)`[6 1 3 6 1 3 4 6 ~]) ~palryp-hocsyt/try=> a {6 4 3 1 6 3 1 6} ~palryp-hocsyt/try=> ~(bal to a) {6 4 3 1 6 3 1 6} - --- - +- dep - max depth of queue - Description: - Produces the maximum depth of leaves (r.a and l.a) in the queue 'a'. - --- +--- + +##+- dep + +Produce the maximum depth of leaves (r.a and l.a) in the queue 'a'. + +####Summary + Creates and kicks a dry %gold trap. Casts the result to an atom. If "a is null", produce 0. Else, increment the maximum of the recursive calls of the 'dep' to the left and right leaves of 'a', $(a l.a) and $(a r.a). - Examples: + +####Examples + ~palryp-hocsyt/try=> =a (~(gas to `(qeu ,@)`~) `(list ,@)`[1 2 3 4 5 6 7 ~]) ~palryp-hocsyt/try=> ~(dep to a) 4 @@ -3408,29 +3977,40 @@ section 2dC, queues ~palryp-hocsyt/try=> =a (~(gas to `(qeu ,@)`~) `(list ,@)`[1 2 ~]) ~palryp-hocsyt/try=> ~(dep to a) 2 - +- gas - insert list to que - Description: - Accepts a - --- + +--- + +##+- gas + +Accept a list `b` of elements of the type of the queue `a` elements and produce the queue +`a` with the elements of `b` added. + +####Summary + Creates a dry %gold gate which accepts a list of the elements of the queue. Creates and kicks a dry %gold gate. Casts the result to the type of 'a', the queue. If "b is null", produce 'a'. Else, Produce the recursive call to the trap with 'b' replaced by the tail of 'b' and 'a' replaced by the result of putting the head of 'b' into 'a'. - Examples: + +####Examples + ~palryp-hocsyt/try=> (~(gas to `(qeu ,@)`~) `(list ,@)`[1 2 3 ~]) {3 2 1} --- ~palryp-hocsyt/try=> =a (~(gas to `(qeu ,@)`~) `(list ,@)`[1 2 3 ~]) ~palryp-hocsyt/try=> =b `(list ,@)`[4 5 6 ~] ~palryp-hocsyt/try=> (~(gas to a) b) - {6 5 4 3 2 1} - +- get - head-tail pair - Description: - Produces the queue 'a' in the format [p=head q=tail]. - --- + {6 5 4 3 2 1} + +--- + +##+- get + +Produces the queue 'a' in the format [p=head q=tail]. + +####Summary + Creates and kicks a dry %gold trap. Casts the head term of the resulting tuple to the type of the queue's elements and the tail type to that of the queue itself. If "a is null", crash the program. @@ -3442,18 +4022,24 @@ section 2dC, queues If "null is in q.b" OR 'n.a' precedes 'n.q.b' in the v-order, produce [n.a l.a q.b]. Else, produce [n.q.b [n.a l.q.b] r.q.b]. - Examples: - - +- nap - removes head - Description: - Removes the head of a queue, producing the resulting queue. - --- + +####Examples + +--- + +##+- nap + +Remove the head of a queue and produce the resulting queue. + +####Summary + Assert that 'a' is a cell. Builds an if-then-else statement on "l.a is null". If so, produce r.a. Else, let 'b' be the result of getting the [p=head q=tail] pair from 'l.a'. Produce the queue v-order of bal(+< ^+(a [p.b q.b r.a])). - Examples: + +####Examples + ~talsur-todres/try=> =a (~(gas to `(qeu ,@)`~) `(list ,@)`[1 2 3 4 5 6 ~]) ~talsur-todres/try=> -.a n=6 @@ -3464,93 +4050,131 @@ section 2dC, queues {5 4 3 2 1} ~talsur-todres/try=> a {6 5 4 3 2 1} - +- put - insert new head - Description: - Accepts any noun and adds to the queue as the head, producing the resutling queue. - --- + +--- + +##+- put + +Accept any noun and adds to the queue as the head, producing the resutling queue. + +####Summary + Creates a wet %gold gate which accepts any noun. Creates and kicks a dry %gold trap. Casts the result to the type of the queue 'a'. If "a is null", produce [b ~ ~]. Else, produce bal(+< a(l $(a l.a))). - Examples: +####Examples + ~dovryp-toblug/try=> (~(gas to `(qeu ,@)`~) `(list ,@)`[3 1 2 4 5 6 ~]) ~dovryp-toblug/try=> (~(put to a) 7) {7 6 5 4 2 1 3} + +--- + +- tap - adds list to end - Description: - Concatenates two lists from the first - --- + +Concatenates two lists from the first + +####Summary + Creates a dry %gold gate which accepts a list of elements of the type of the queue's elements. Casts the result to the type of 'b', the list. If "a is null", produce 'b'. Else, produce the recursive call to the gate with 'a' replaced by 'r.a' and 'b' replaced by [n.a $(a l.a)], where $(a l.a) is the recursive call to the trap with 'a' replaced by 'l.a'. - Examples: + +#### Examples + ~dovryp-toblug/try=> =a (~(gas to `(qeu ,@)`~) `(list ,@)`[3 1 2 4 5 6 ~]) ~dovryp-toblug/try=> (~(tap to a) `(list ,@)`[99 100 101 ~]) ~[3 1 2 4 5 6 99 100 101] - +- top - produces head - Description: - - --- + +--- + +##+- top + +####Summary + Creates and kicks a dry %gold trap. Casts the result to a unit of the type of the queue's element. If "a is null", produce null. Else, if "the right leaf of 'a' is null", produce [~ n.a]. Else, produce $(a r.a), the recursive call to the trap with 'a' replaced by 'r.a'. - Examples: + +####Examples + ~talsur-todres/try=> =a (~(gas to `(qeu ,@)`~) `(list ,@)`[1 2 3 4 5 6 ~]) ~talsur-todres/try=> ~(top to a) [~ 1] +--- + section 2dD, casual containers -++ mo - make a map - Description: - Mapifiy. Accepts a list of cells and produces a map of key-value pairs from the left-right cell pairs of the list. - --- +--- + +##++ mo + +Mapifiy. Accepts a list of cells and produces a map of key-value pairs from the left-right cell pairs of the list. + +####Summary + Creates a wet %gold gate which accepts a list, 'a'. Pushes the homogenized list onto the context. Casts the list 'a' to a list of cells whose left-right types correspond to the key-value type pairs. Let 'b' be the bunt of the map with the properly typed keys and values from the cell at the head of our list. Concatenate the elements of 'a' into the empty map of bunt 'b', and produce the result. - Examples: + +####Examples + ~talsur-todres/try=> (mo `(list ,[@t *])`[[`a` 1] [`b` 2] ~]) {[p=`a` q=1] [p=`b` q=2]} + +---- -++ sa - make a set - Description: - Setify. Accepts a list and produces a set of the list's elements. - --- +##++ sa + +Setify. Accepts a list and produces a set of the list's elements. + +####Summary + Creates a wet %gold gate which accepts a list, 'a'. Pushes the homogenized list onto the context. Let 'b' be the bunt of the set with elements of the same type of the elements of 'a'. Concatenate the elements of 'a' into the empty set of bunt 'b', and produce the result. - Examples: + +####Examples + ~talsur-todres/try=> (sa `(list ,@)`[1 2 3 4 5 ~]) {5 4 1 3 2} --- ~talsur-todres/try=> (sa `(list ,[@t *])`[[`a` 1] [`b` 2] ~]) {[`a` 1] [`b` 2]} -++ qu - make a set - Description: - XXX THIS APPEARS TO BE A COPY OF ++sa. QUEUIFY IS NOT IMPLEMENTED YET. XXX - --- - Examples: + +---- + +##++ qu + +XXX THIS APPEARS TO BE A COPY OF ++sa. QUEUIFY IS NOT IMPLEMENTED YET. XXX + +####Summary + +####Examples + +--- chapter 2e, miscellaneous libs section 2eA, packing - -++ cue - Unpack an atom to a noun. The inverse of jam. - --- + +--- + +##++ cue + +Unpack an atom to a noun. The inverse of jam. + +####Summary + Activate jet. Build dry %gold gate with sample atom `a`. Yield noun. @@ -3561,8 +4185,9 @@ section 2eA, packing If (0=(cut 0 [b 1] a)), Then, push `c` is (rub +(b) a). Produce - - --- + +####Examples + ~midlys-rocpet/try=> (cue (jam 1)) 1 ~midlys-rocpet/try=> (cue 4.657) @@ -3571,25 +4196,38 @@ section 2eA, packing [1 1] ~tadbyl-hilbel/try=> (cue 39.689) [0 19] -++ jam - Compress a noun to an atom. The inverse of cue. - --- + +--- + +##++ jam + +Compress a noun to an atom. The inverse of cue. + +####Summary + Activate jet. Build wet %gold gate with sample noun `a`. Yield atom. Push `b` is 0. Push `m` is empty may of type (map ,@ ,*). - --- +####Examples + ~midlys-rocpet/try=> (jam 1) 12 ~midlys-rocpet/try=> (jam [1 1]) 817 ~tadbyl-hilbel/try=> (jam [~ u=19]) 39.689 -++ mat - Encodes length. Only used internally as helper function to jam and cue. - --- + +--- + +##++ mat + +Encodes length. Only used internally as helper function to jam and cue. + +####Summary + Activate jet. Build dry %gold gate with sample atom a. Yield atom a, atom b. @@ -3600,9 +4238,17 @@ section 2eA, packing Produce pair: (add (add c c) b) and (cat 0 (bex c) (mix (end 0 (dec c) b) (lsh 0 (dec c) a))) -++ rub - Decodes length. Only used internally as a helper function to jam and cue. - --- + +####Examples + +--- + +##++ rub + +Decodes length. Only used internally as a helper function to jam and cue. + +####Summary + Activate jet. Build wet %gold gold with sample atom a, atom b. Yield atom p, atom q. @@ -3618,11 +4264,20 @@ section 2eA, packing Push `e` is (add (bex (dec c)) (cut 0 [d (dec c)] b)). Produce [(add (add c c) e) (cut 0 [(add d (dec c)) e] b)] -section 2eB, parsing (tracing) +####Examples + +--- + +section 2eB, parsing (tracing) + +--- + +##++ last + +Compare two [line column] pairs and produce the one which is farther along in text. + +####Summary -++ last - Compare two [line column] pairs and produce the one which is farther along in text. - --- Build dry %gold gate with sample hair `zyc`, hair `naz` Yield hair. If: p.zyc is p.naz, @@ -3632,7 +4287,9 @@ section 2eB, parsing (tracing) Else: If: p.zyc is greater than p.naz, Then: Produce zyc, Else: Produce naz. - --- + +####Examples + ~tadbyl-hilbel/try=> (last [1 1] [1 2]) [p=1 q=2] ~tadbyl-hilbel/try=> (last [2 1] [1 2]) @@ -3641,15 +4298,24 @@ section 2eB, parsing (tracing) [p=99 q=0] ~tadbyl-hilbel/try=> (last [7 7] [7 7]) [p=7 q=7] -++ lust - Produce the beginning of the next line after a newline character or increment the column number - The index of the next character to be parsed. - --- + +--- + +##++ lust + +Produce the beginning of the next line after a newline character or increment the +column number - The index of the next character to be parsed. + +####Summary + Build dry %gold gate with sample char `weq`, hair `naz` Yield hair. If: `weq` is 10, Then: Produce [+(p.naz) 1]. Else: Produce [p.naz +(q.naz)]. - --- + +####Examples + ~tadbyl-hilbel/try=> (lust `a` [1 1]) [p=1 q=2] ~tadbyl-hilbel/try=> (lust `@t`10 [1 1]) @@ -3659,11 +4325,18 @@ section 2eB, parsing (tracing) ~tadbyl-hilbel/try=> (lust `@t`10 [0 0]) [p=1 q=1] +--- + section 2eC, parsing (custom rules) -++ cold - Build gate to parse a nail with a rule, then replaced the parsed texted with a constant. - --- +--- + +##++ cold + +Build gate to parse a nail with a rule, then replaced the parsed texted with a constant. + +####Summary + Activate jet. Build wet %gold gate with sample noun `cus`, bunt of a rule `sef`. Activate extra parsing jet. @@ -3672,14 +4345,22 @@ section 2eC, parsing (custom rules) If: q.vex is an atom, Then: Produce `vex` Else: Produce [p=p.vex q=[~ u=[p=cus q=q.u.q.vex]]] - --- + +####Examples + ~midlys-rocpet/try=> ((cold %foo (just `a`)) [[1 1] "abc"]) [p=[p=1 q=2] q=[~ u=[p=%foo q=[p=[p=1 q=2] q="bc"]]]] ~midlys-rocpet/try=> ((cold %foo (just `a`)) [[1 1] "bc"]) [p=[p=1 q=1] q=~] -++ cook - Build gate to parse a nail with a rule, then slam a gate with the parsed text. - --- + +--- + +##++ cook + +Build gate to parse a nail with a rule, then slam a gate with the parsed text. + +####Summary + Activate jet. Build wet %gold gate with sample clam gate `poq`, bunt of a rule `sef`. Activate extra parsing jet. @@ -3689,7 +4370,9 @@ section 2eC, parsing (custom rules) Then: Produce `vex` Else: Produce [p=p.vex q=[~ u=[p=(poq p.u.q.vex) q=q.u.q.vex]]], where (poq p.u.q.vex) is gate `poq` slammed with the parsed text. - --- + +####Examples + ~midlys-rocpet/try=> ((cook ,@ud (just `a`)) [[1 1] "abc"]) [p=[p=1 q=2] q=[~ u=[p=97 q=[p=[p=1 q=2] q="bc"]]]] ~midlys-rocpet/try=> ((cook ,@tas (just `a`)) [[1 1] "abc"]) @@ -3698,35 +4381,58 @@ section 2eC, parsing (custom rules) [p=[p=1 q=2] q=[~ u=[p=98 q=[p=[p=1 q=2] q="bc"]]]] ~midlys-rocpet/try=> ((cook |=(a=@ `@t`+(a)) (just `a`)) [[1 1] "abc"]) [p=[p=1 q=2] q=[~ u=[p=`b` q=[p=[p=1 q=2] q="bc"]]]] -++ easy - Succeed but consume no characters - Produce an edge at the same text position with the text to parse unchanged, but with a - --- + +--- + +##++ easy + +Succeed but consume no characters - Produce an edge at the same text position +with the text to parse unchanged, but with a + +####Summary + Activate jet. Build wet %gold gate with sample noun, `huf`, a noun to produce as the parsed value. Activate extra parsing jet. Build dry %gold date with sample nail, `tub` Yield edge of type `huf` Produce [p=p.tub q=[~ u=[p=huf q=tub]]], the edge with the noun `huf` as it's parsed value and `tub` as unparsed. - --- + +####Examples + ~tadbyl-hilbel/try=> ((easy %foo) [[1 1] "abc"]) [p=[p=1 q=1] q=[~ [p=%foo q=[p=[p=1 q=1] q="abc"]]]] ~tadbyl-hilbel/try=> ((easy %foo) [[1 1] "bc"]) [p=[p=1 q=1] q=[~ [p=%foo q=[p=[p=1 q=1] q="bc"]]]] ~tadbyl-hilbel/try=> ((easy 'a') [[1 1] "bc"]) [p=[p=1 q=1] q=[~ [p='a' q=[p=[p=1 q=1] q="bc"]]]] -++ fail - Fail to parse - Produce a nail at the same text position but with null text. - --- + +--- + +##++ fail + +Fail to parse - Produce a nail at the same text position but with null text. + +####Summary + Build wet %gold gate with sample nail, `tub`. Produce nail [p=p.tub q=~]. - --- + +####Examples + ~tadbyl-hilbel/try=> (fail [[1 1] "abc"]) [p=[p=1 q=1] q=~] ~tadbyl-hilbel/try=> (fail [[p=1.337 q=70] "Parse me, please?"]) [p=[p=1.337 q=70] q=~] -++ full - Demand politely that the parsing rule parse the entire sample nail, produce a null edge otherwise. - --- + +--- + +##++ full + +Demand politely that the parsing rule parse the entire sample nail, produce a null edge otherwise. + +####Summary + Build wet %gold gate with sample rule, `sab` Build dry %gold gate with sample nail `tub` Push `vex` is the rule slammed with the text to parse. @@ -3735,30 +4441,47 @@ section 2eC, parsing (custom rules) Else: If: The unparsed text in the produced edge is nulll, Then: Produce `vex` Else: Produce [p=p.vex q=~], the edge with a null unit nail. - --- + +####Examples + ~tadbyl-hilbel/try=> ((full (just 'a')) [[1 1] "ab"]) [p=[p=1 q=2] q=~] ~tadbyl-hilbel/try=> ((full (jest 'ab')) [[1 1] "ab"]) [p=[p=1 q=3] q=[~ u=[p='ab' q=[p=[p=1 q=3] q=""]]]] ~tadbyl-hilbel/try=> ((full ;~(plug (just 'a') (just 'b'))) [[1 1] "ab"]) [p=[p=1 q=3] q=[~ u=[p=[~~a ~~b] q=[p=[p=1 q=3] q=""]]]] -++ funk - Prepend a tape to the text to be parsed, then parse the new tape. - --- + +--- + +##++ funk + +Prepend a tape to the text to be parsed, then parse the new tape. + +####Summary + Build wet %gold gate with sample tape `pre`, rule `sef` Build dry %gold gate with sample nail, `tub` Produce the rule slammed with the hair index of `tub` and the concatenation of the prefix tape and the `tub` tape. - --- + +####Examples + ~tadbyl-hilbel/try=> ((funk "abc prefix-" (jest 'abc')) [[1 1] "to be parsed"]) [p=[p=1 q=4] q=[~ [p='abc' q=[p=[p=1 q=4] q=" prefix-to be parsed"]]]] ~tadbyl-hilbel/try=> ((funk "parse" (just 'a')) [[1 4] " me"]) [p=[p=1 q=4] q=~] -++ here - Apply rule if parsing within a specific line and column range. - --- + +--- + +##++ here + +Apply rule if parsing within a specific line and column range. + +####Summary + Activate jet. - Build wet %gold gate with sample bunted gate accepting pint `a`, noun `b` and producing cell [a b], and bunt of rule `sef` + Build wet %gold gate with sample bunted gate accepting pint `a`, + noun `b` and producing cell [a b], and bunt of rule `sef` Activate extra parsing jet. Build dry %gold gate with sample nail `tub` Push `vex` is the rule `sef` slammed by the nail `tub`, an edge. @@ -3771,12 +4494,18 @@ section 2eC, parsing (custom rules) u is: p is `hez` slammed with the pint cell of tub's position and vex's position. q is `q.u.q.vex`, the text not parsed. - --- + +####Examples + +--- -++ inde - Apply rule to indented block starting at current column number, - omitting the leading whitespace. - --- +##++ inde + +Apply rule to indented block starting at current column number, +omitting the leading whitespace. + +####Summary + Build wet %gold gate with sample rule, 'sef' Build dry %gold gate with sample nail and the same product type as sef. Let 'har' and 'tap' be p and q within that nail @@ -3798,11 +4527,17 @@ section 2eC, parsing (custom rules) by the result of tossing res for its tail. Welp together a newline, lev, and the result of tossing res for its tail. - --- -++ jest - Match and consume a cord. - --- +####Examples + +--- + +##++ jest + +Match and consume a cord. + +####Summary + Build dry %gold gate with sample cord `daf` Build dry %gold gate with sample nail `tub` Push `fad` is `daf` @@ -3815,8 +4550,11 @@ section 2eC, parsing (custom rules) u is the cell [p=fad q=tub] Else: If: fish for null in q.tub OR compile to Nock the last byte in `daf` and the Then: Produce the failed parse of `tub`, - Else: Toss `p.tub` for the index of the next character to be parsed, `q.tub` for the tail of `q.tub`, `daf` for the single byte right-shift of `daf` - --- + Else: Toss `p.tub` for the index of the next character to be parsed, + `q.tub` for the tail of `q.tub`, `daf` for the single byte right-shift of `daf` + +####Examples + ~tadbyl-hilbel/try=> ((jest 'abc') [[1 1] "abc"]) [p=[p=1 q=4] q=[~ [p='abc' q=[p=[p=1 q=4] q=""]]]] ~tadbyl-hilbel/try=> (scan "abc" (jest 'abc')) @@ -3829,9 +4567,15 @@ section 2eC, parsing (custom rules) [p=[p=1 q=6] q=~] ~tadbyl-hilbel/try=> ((jest 'john doe') [[1 1] "john doe"]) [p=[p=1 q=9] q=[~ [p='john doe' q=[p=[p=1 q=9] q=""]]]] -++ just - Match and consume a single character. - --- + +--- + +##++ just + +Match and consume a single character. + +####Summary + Activate jet. Build dry %gold gate with sample char `daf` Activate extra parsing jet. @@ -3842,7 +4586,9 @@ section 2eC, parsing (custom rules) Else: Unless: `daf` is `i.q.tub`, Then: Produce the failed parse of `tub`, Else: Produce the parse of the next character of `tub` - --- + +###Examples + ~tadbyl-hilbel/try=> ((just 'a') [[1 1] "abc"]) [p=[p=1 q=2] q=[~ [p=~~a q=[p=[p=1 q=2] q="bc"]]]] ~tadbyl-hilbel/try=> (scan "abc" (just 'a')) @@ -3853,19 +4599,30 @@ section 2eC, parsing (custom rules) ~~a ~tadbyl-hilbel/try=> (scan "%" (just '%')) ~~~25. -++ knee - Callback - --- + +--- + +##++ knee + +Callback + +####Summary + Build wet %gold gate with sample noun `gar`, rule trap `sef` Build dry %gold gate with sample nail `tub` Yield char edge. Produce `tub` slammed to `sef` - --- - - -++ mask - Match the next char to a list of chars, a tape. - --- + +####Examples + +--- + +##++ mask + +Match the next char to a list of chars, a tape. + +####Summary + Activate jet. Build wet %gold gate with sample (list char) `bud` Activate extra parsing jet. @@ -3875,7 +4632,8 @@ section 2eC, parsing (custom rules) Then: Produce the failed parse of `tub` Else: Unless: - --- +####Examples + ~tadbyl-hilbel/try=> (scan "a" (mask "cba")) ~~a ~midlys-rocpet/try=> ((mask "abc") [[1 1] "abc"]) @@ -3884,9 +4642,15 @@ section 2eC, parsing (custom rules) [p=[p=1 q=2] q=[~ [p=~~b q=[p=[p=1 q=2] q="bc"]]]] ~midlys-rocpet/try=> ((mask "abc") [[1 1] "dbc"]) [p=[p=1 q=1] q=~] -++ next - Always succeeds and consumes a character. - --- + +--- + +##++ next + +Always succeeds and consumes a character. + +####Summary + Build dry %gold gate with sample nail `tub` Yield char edge. If: The text to parse `q.tub` is an atom, @@ -3896,15 +4660,23 @@ section 2eC, parsing (custom rules) Produce the edge with the hair `zac` and unit nail with: The character successfully consumed, the head of the text to parse. A nail of hair index `zac`, text to be parsed `t.q.tub` (The tail of the text to parse.) - --- + +####Examples + ~tadbyl-hilbel/try=> (next [[1 1] "ebc"]) [p=[p=1 q=2] q=[~ [p=~~e q=[p=[p=1 q=2] q="bc"]]]] ~tadbyl-hilbel/try=> (next [[1 1] "john jumps jones"]) [p=[p=1 q=2] q=[~ [p=~~j q=[p=[p=1 q=2] q="ohn jumps jones"]]]] -++ sear - Conditional cook - Produce the slam of the parsed texted to `b` only if the result is not null. - Else, produce null. - --- + +--- + +##++ sear + +Conditional cook - Produce the slam of the parsed texted to `b` only if the result is not null. +Else, produce null. + +####Summary + Activate jet. Build wet %gold gate with sample tile of gate accepting a noun and producing a unit `pyq`, rule `sef` Activate extra parsing jet. @@ -3921,14 +4693,22 @@ section 2eC, parsing (custom rules) q is the unit with value u is: p is the value of the parsed text slammed to `pyq` q is the value of the unparsed text. - --- + +####Examples + ~midlys-rocpet/try=> ((sear |=(a=* ?@(a (some a) ~)) (just `a`)) [[1 1] "abc"]) [p=[p=1 q=2] q=[~ u=[p=97 q=[p=[p=1 q=2] q="bc"]]]] ~midlys-rocpet/try=> ((sear |=(a=* ?@(a [~ u=a] ~)) (just `a`)) [[1 1] "abc"]) [p=[p=1 q=2] q=[~ u=[p=97 q=[p=[p=1 q=2] q="bc"]]]] -++ shim - Match characters within a range. - --- + +--- + +##++ shim + +Match characters within a range. + +####Summary + Activate jet. Build wet %gold gate with sample atom `les`, atom `mos` Activate extra parsing jet. @@ -3939,16 +4719,24 @@ section 2eC, parsing (custom rules) Else: Unless: `i.q.tub` is greater than or equal to `les` AND `i.q.tub` is less than or equal to `mos`, Then: Produce the failed parse of `tub`, Else: Produce the single character parse of `tub` - --- + +####Examples + ~midlys-rocpet/try=> ((shim `a` 'z') [[1 1] "abc"]) [p=[p=1 q=2] q=[~ [p=~~a q=[p=[p=1 q=2] q="bc"]]]] ~midlys-rocpet/try=> ((shim `a` 'Z') [[1 1] "abc"]) [p=[p=1 q=1] q=~] ~midlys-rocpet/try=> ((shim `a` 'Z') [[1 1] "Abc"]) [p=[p=1 q=2] q=[~ [p=~~~41. q=[p=[p=1 q=2] q="bc"]]]] -++ stag - Add a label to an edge parsed by a rule. - --- + +--- + +##++ stag + +Add a label to an edge parsed by a rule. + +####Summary + Activate jet. Build wet %gold gate with sample noun `gob`, bunt of a rule `sef` Activate extra parsing jet. @@ -3957,16 +4745,24 @@ section 2eC, parsing (custom rules) If: `q.vex` is an atom, Then: Produce `vex` Else: Produce the edge with hair `p.vex` and unit with value hair u=[p=[gob p.u.q.vex] q=q.u.q.vex] - --- + +###Examples + ~tadbyl-hilbel/try=> ((stag %foo (just 'a')) [[1 1] "abc"]) [p=[p=1 q=2] q=[~ u=[p=[%foo ~~a] q=[p=[p=1 q=2] q="bc"]]]] ~tadbyl-hilbel/try=> ((stag "xyz" (jest 'abc')) [[1 1] "abc"]) [p=[p=1 q=4] q=[~ u=[p=["xyz" 'abc'] q=[p=[p=1 q=4] q=""]]]] ~tadbyl-hilbel/try=> ((stag 10.000 (shim 0 100)) [[1 1] "abc"]) [p=[p=1 q=2] q=[~ u=[p=[10.000 ~~a] q=[p=[p=1 q=2] q="bc"]]]] -++ stet - Listify a list of text position and bunt of rule pairs. - --- + +--- + +##++ stet + +Listify a list of text position and bunt of rule pairs. + +####Summary + Build wet %gold gate with sample list of position and bunt of rule pairs `leh` Kick dry %gold trap. If: `leh` is null, @@ -3974,8 +4770,11 @@ section 2eC, parsing (custom rules) Else: Produce the cell, with head: The cell of the head of the head of `leh`, p=-.i.leh, the tail of the head of `leh, q=+.i.leh. with tail: Toss `leh` for `t.leh` - --- - ~tadbyl-hilbel/try=> (stet (limo [[5 (just 'a')] [1 (jest 'abc')] [[1 1] (shim 0 200)] [[1 10] (cold %foo (just 'a'))]~])) + +####Examples + + ~tadbyl-hilbel/try=> (stet (limo [[5 (just 'a')] [1 (jest 'abc')] [[1 1] (shim 0 200)] + [[1 10] (cold %foo (just 'a'))]~])) ~[ [p=5 q=<1.lrk [tub=[p=[p=@ud q=@ud] q=""] <1.nqy [daf=@tD <394.imz 97.kdz 1.xlc %164>]>]>] [p=1 q=<1.lrk [tub=[p=[p=@ud q=@ud] q=""] <1.nqy [daf=@tD <394.imz 97.kdz 1.xlc %164>]>]>] @@ -3987,17 +4786,26 @@ section 2eC, parsing (custom rules) [p=[1 1] q=<1.lrk [tub=[p=[p=@ud q=@ud] q=""] <1.nqy [daf=@tD <394.imz 97.kdz 1.xlc %164>]>]>] [p=[2 1] q=<1.lrk [tub=[p=[p=@ud q=@ud] q=""] <1.nqy [daf=@tD <394.imz 97.kdz 1.xlc %164>]>]>] ] -++ stew + +--- + +##++ stew - --- +####Summary + Activate jet. Build wet %gold gate with sample list of position and bunt of rule pairs `leh` Push label `wor` on: Build dry %gold gate with sample fork between `ort` , fork `wan` - --- -++ stir + +####Examples + +--- + +##++ stir - --- +####Summary + Activate jet. Build wet %gold gate with sample noun `rud`, gate accepting two nouns and producing , rule `fel` Activate extra parsing jet. @@ -4013,11 +4821,16 @@ section 2eC, parsing (custom rules) The farthest along hair index of `vex` and `wag` The unit nail of - --- +####Examples + +--- -++ stun - Parse several times - --- +##++ stun + +Parse several times + +####Summary + Activate jet. Build wet %gold gate with sample atom `les`, atom `mos`, rule `fel` Activate extra parsing jet. @@ -4026,13 +4839,17 @@ section 2eC, parsing (custom rules) If: `mos` is 0, Then: Produce the edge with - --- +####Examples + +--- section 2eD, parsing (combinators) +--- -++ bend +##++ bend - --- +####Summary + Activate jet. Build wet %gold gate with sample gate accepting a noun `a`, noun `b` and producing the unit of [a b] Activate extra parsing jet. @@ -4040,11 +4857,17 @@ section 2eD, parsing (combinators) If: `q.vex` is an atom, Then: Produce `vex`, Else: Push `yit` is sab slammed with - --- -++ comp - Arbitrary compose - --- +####Examples + +--- + +##++ comp + +Arbitrary compose + +####Summary + Activate jet. Build wet %gold gate with sample gate accepting noun a, noun b and producing [a b], `raq` Activate extra parsing jet. @@ -4058,12 +4881,17 @@ section 2eD, parsing (combinators) Else: Produce the edge with hair `yur`, unit [p=* q=nail] cell where: p is `raq` slammed with `p.u.q.vex` and `p.u.q.yit`, the parsed results `yit` and `vex` q is `q.u.q.yit`, the unparsed text of `yit` - --- - -++ glue - Add rule. - --- +###Examples + +--- + +##++ glue + +Add rule. + +####Summary + Activate jet. Build wet %gold gate with sample rule `bus` Activate extra parsing jet. @@ -4071,29 +4899,47 @@ section 2eD, parsing (combinators) Slam plug with: The edge `vex` The tuple of slamming bus and sab with pfix - --- -++ less - No first and second. - --- + +####Examples + +--- + +##++ less + +No first and second. + +####Summary + Build wet %gold gate with sample edge `vex`, rule `sab` If: `q.vex` is null, Then: Push `roq` is `sab`. Produce [p=(last p.vex p.roq) q=q.roq] Else: Produce vex with q tossed for null. - --- -++ pfix - Discard the first rule of a two rule cell. - --- +####Examples + +--- + +##++ pfix + +Discard the first rule of a two rule cell. + +####Summary + Activate jet. Produce comp slammed with: Build wet %gold gate slammed with sample noun `a`, noun `b`. Produce `b` - --- + +####Examples + + --- - -++ plug - Apply parsing rules in order to an edge. - --- +##++ plug + +Apply parsing rules in order to an edge. + +####Summary + Activate jet. Build wet %gold gate with sample edge `vex`, rule `sab` If: The unit of text to parse is null, @@ -4104,7 +4950,9 @@ section 2eD, parsing (combinators) Then: Produce the edge [p=yur q=null]. Else: Produce the edge [p=yur q=[~ u=[p=[p.u.q.vex p.u.q.yit] q=q.u.q.yit]]], the edge of the text parsed with the rule. - --- + +####examples + ~tadbyl-hilbel/try=> (;~(plug lus lus) [[1 1] "++"]) [p=[p=1 q=3] q=[~ u=[p=[~~~2b. ~~~2b.] q=[p=[p=1 q=3] q=""]]]] ~tadbyl-hilbel/try=> (scan "++" ;~(plug lus lus)) @@ -4125,11 +4973,17 @@ section 2eD, parsing (combinators) ! {1 3} ! 'syntax-error' ! exit -++ pose - Build list of parsing rules and try to use any of them in order. - `pose` has the same usage as `plug`, but does not fail if the rules are not - successful in a certain order. - --- + +---` + +##++ pose + +Build list of parsing rules and try to use any of them in order. +`pose` has the same usage as `plug`, but does not fail if the rules are not +successful in a certain order. + +####Summary + Activate jet. Build wet %gold gate with sample edge `vex`, rule `sab` If: The unit of text to parse is null, @@ -4137,7 +4991,9 @@ section 2eD, parsing (combinators) Produce the edge with the hair that is farther along of `vex` and `yit` and the parse results of the rule. Else: Produce the initial edge, `vex` - --- + +###Examples + ~tadbyl-hilbel/try=> (;~(pose (just 'a') (just 'b') (just 'c')) [[1 1] "c"]) [p=[p=1 q=2] q=[~ [p=~~c q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (scan "c" ;~(pose (just 'a') (just 'b') (just 'c'))) @@ -4150,65 +5006,105 @@ section 2eD, parsing (combinators) "|-" ~tadbyl-hilbel/try=> (scan "john doe" (star ;~(pose (jest 'doe') ace (jest 'john')))) ~['john' ' ' 'doe'] - -++ sfix - Discard second rule. - --- + +--- + +##++ sfix + +Discard second rule. + +####Summary + Activate jet. Slam comp with a wet %gold gate accepting noun `a`, noun `b` and producing noun `a` - --- + +####Examples + +--- section 2eE, parsing (composers) -++ bass - --- +--- + +##++ bass + +####Summary + Build wet %gold gate with sample atom `wuc`, rule `tyd` Slam cook with: Build dry %gold gate with sample list of atoms, `waq` Slam roll with: - --- -++ boss - --- +###Examples + +--- + +##++ boss + +####Summary + Build wet %gold gate with sample atom `wuc`, rule `tyd` - --- -++ ifix + +####Examples + +--- + +##++ ifix - --- +####Summary + Build wet %gold gate with sample cell of rules `fel`, rule `hof` Produce pfix gonadified with: `p.fel`, the first rule in `fel` Gonadify sfix with `hof` and `q.fel`, the second rule in `fel` - --- + +####Examples + +--- -++ more - --- +##++ more + +####Summary + Build wet %gold gate with sample rule `bus`, rule `fel` Produce the gonadified: - --- -++ most - Parse to a list elements of the second rule seperated by the second. - --- +###Examples + +--- + +##++ most + +Parse to a list elements of the second rule seperated by the second. + +####Summary + Build wet %gold gate with sample rule `bus`, rule `fel` Produce gonadified: Plug slammed with `fel`, star slammed with gonadified: pfix slammed with `bus` and `fel`, `bus` added as the prefix of `fel` - --- - -++ plus - Like 'star', but "one or more" instead of "0 or more" +###Examples + +--- + +##++ plus + +Like 'star', but "one or more" instead of "0 or more" + +####Summary - --- Build wet %gold gate with sample rule `fel` Produce gonadified: plug slammed with `fel` and star slammed with `fel`, the repeated application of `fel`. - --- - - -++ slug - --- +####Examples + +--- + +##++ slug + +####Summary + Build wet %gold gate with sample noun `rud`, gate accepting cell of two nouns and producing [a b] `raq` Build wet %gold gate with sample rule `bus`, rule `fel` Produce the gonadified: @@ -4216,16 +5112,23 @@ section 2eE, parsing (composers) slammed with `fel`, slammed with, stir slammed with `rud`, `raq`, and `fel` prefixed with `bus` - --- +####Examples + +--- -++ star - Apply the parsing rule repeatedly until it fails. - --- +##++ star + +Apply the parsing rule repeatedly until it fails. + +####Summary + Build wet %gold gate with sample rule `fel, Produce stir slammed with: The list of elements of type of the icon of `fel` slammed to `wonk` - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "aaaaa" (just 'a')) ! {1 2} ! 'syntax-error' @@ -4241,13 +5144,22 @@ section 2eE, parsing (composers) ~tadbyl-hilbel/try=> (scan "john smith" (star (shim 0 200))) "john smith" +--- + section 2eF, parsing (ascii) -++ ace - Parse ASCII character 32, ace. - --- +--- + +##++ ace + +Parse ASCII character 32, ace. + +####Summary + Produce the rule just slammed with ' ' - --- + +###Examples + ~tadbyl-hilbel/try=> (scan " " ace) ~~. ~tadbyl-hilbel/try=> `cord`(scan " " ace) @@ -4256,11 +5168,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (ace [[1 1] " abc "]) [p=[p=1 q=2] q=[~ [p=~~. q=[p=[p=1 q=2] q="abc "]]]] -++ bar - Parse ASCII character 124, bar. - --- + +--- + +##++ bar + +Parse ASCII character 124, bar. + +####Summary + Produce the rule just slammed with '|' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "|" bar) ~~~7c. ~tadbyl-hilbel/try=> `cord`(scan "|" bar) @@ -4269,12 +5189,20 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~7c. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (bar [[1 1] "|="]) [p=[p=1 q=2] q=[~ [p=~~~7c. q=[p=[p=1 q=2] q="="]]]] -++ bas - Parse ASCII character 92, bas. - Note the extra '\' in the slam of bas with just is to escape the escape character, bas. - --- + +--- + +##++ bas + +Parse ASCII character 92, bas. +Note the extra '\' in the slam of bas with just is to escape the escape character, bas. + +####Summary + Produce the rule just slammed with '\\' - --- + +###Examples + ~tadbyl-hilbel/try=> (scan "\\" bas) ~~~5c. ~tadbyl-hilbel/try=> `cord`(scan "\\" bas) @@ -4285,11 +5213,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~5c. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (bas [[1 1] "\""]) [p=[p=1 q=1] q=~] -++ buc - Parse ASCII character 36, buc. - --- + +--- + +##++ buc + +Parse ASCII character 36, buc. + +####Summary + Produce the rule just slammed with '$' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "$" buc) ~~~24. ~tadbyl-hilbel/try=> `cord`(scan "$" buc) @@ -4298,11 +5234,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~24. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (buc [[1 1] "$%"]) [p=[p=1 q=2] q=[~ [p=~~~24. q=[p=[p=1 q=2] q="%"]]]] -++ cab - Parse ASCII character 95, cab. - --- + +--- + +##++ cab + +Parse ASCII character 95, cab. + +####Summary + Produce the rule just slammed with '_' - --- + +###Examples + ~tadbyl-hilbel/try=> (scan "_" cab) ~~~5f. ~tadbyl-hilbel/try=> `cord`(scan "_" cab) @@ -4311,11 +5255,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~5f. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (cab [[1 1] "|_"]) [p=[p=1 q=1] q=~] -++ cen - Parse ASCII character 37, cen. - --- + +--- + +##++ cen + +Parse ASCII character 37, cen. + +####Summary + Produce the rule just slammed with '%' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "%" cen) ~~~25. ~tadbyl-hilbel/try=> `cord`(scan "%" cen) @@ -4324,11 +5276,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~25. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (cen [[1 1] "%^"]) [p=[p=1 q=2] q=[~ [p=~~~25. q=[p=[p=1 q=2] q="^"]]]] -++ col - Parse ASCII character 58, col. - --- + +--- + +##++ col + +Parse ASCII character 58, col. + +####Summary + Produce the rule just slammed with ':' - --- + +###Examples + ~tadbyl-hilbel/try=> (scan ":" col) ~~~3a. ~tadbyl-hilbel/try=> `cord`(scan ":" col) @@ -4337,11 +5297,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~3a. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (col [[1 1] ":-"]) [p=[p=1 q=2] q=[~ [p=~~~3a. q=[p=[p=1 q=2] q="-"]]]] -++ com - Parse ASCII character 44, com. - --- + +--- + +##++ com + +Parse ASCII character 44, com. + +####Summary + Produce the rule just slammed with ',' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "," com) ~~~2c. ~tadbyl-hilbel/try=> `cord`(scan "," com) @@ -4350,11 +5318,18 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~2c. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (com [[1 1] "not com"]) [p=[p=1 q=1] q=~] -++ doq - Parse ASCII character 34, doq. - --- + +--- + +##++ doq + +Parse ASCII character 34, doq. + +####Summary + Produce the rule just slammed with '"' - --- +####Examplse + ~tadbyl-hilbel/try=> (scan "\"" doq) ~~~22. ~tadbyl-hilbel/try=> `cord`(scan "\"" doq) @@ -4367,11 +5342,19 @@ section 2eF, parsing (ascii) ! {1 1} ! 'syntax-error' ! exit -++ dot - Parse ASCII character 46, dot. - --- + +--- + +##++ dot + +Parse ASCII character 46, dot. + +####Summary + Produce the rule just slammed with '.' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "." dot) ~~~. ~tadbyl-hilbel/try=> `cord`(scan "." dot) @@ -4380,11 +5363,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (dot [[1 1] ".^"]) [p=[p=1 q=2] q=[~ [p=~~~. q=[p=[p=1 q=2] q="^"]]]] -++ fas - Parse ASCII character 47, fas. - --- + +--- + +##++ fas + +Parse ASCII character 47, fas. + +####Summary + Produce the rule just slammed with '/' - --- + +###Examples + ~tadbyl-hilbel/try=> (scan "/" fas) ~~~2f. ~tadbyl-hilbel/try=> `cord`(scan "/" fas) @@ -4393,11 +5384,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~2f. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (fas [[1 1] "|/"]) [p=[p=1 q=1] q=~] -++ gal - Parse ASCII character 60, gal. - --- + +--- + +##++ gal + +Parse ASCII character 60, gal. + +####Summary + Produce the rule just slammed with '<' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "<" gal) ~~~3c. ~tadbyl-hilbel/try=> `cord`(scan "<" gal) @@ -4408,11 +5407,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~3c. q=[p=[p=1 q=2] q="+"]]]] ~tadbyl-hilbel/try=> (gal [[1 1] "+<"]) [p=[p=1 q=1] q=~] -++ gar - Parse ASCII character 62, gar. - --- + +--- + +##++ gar + +Parse ASCII character 62, gar. + +####Summary + Produce the rule just slammed with '>' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan ">" gar) ~~~3e. ~tadbyl-hilbel/try=> `cord`(scan ">" gar) @@ -4421,11 +5428,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~3e. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (gar [[1 1] "=>"]) [p=[p=1 q=1] q=~] -++ hax - Parse ASCII character 35, hax. - --- + +--- + +##++ hax + +Parse ASCII character 35, hax. + +####Summary + Produce the rule just slammed with '#' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "#" hax) ~~~23. ~tadbyl-hilbel/try=> `cord`(scan "#" hax) @@ -4434,12 +5449,20 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~23. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (hax [[1 1] "#!"]) [p=[p=1 q=2] q=[~ [p=~~~23. q=[p=[p=1 q=2] q="!"]]]] -++ kel - Parse ASCII character 123, kel. - Note that this, with ker, opens and closes a Hoon expression for Hoon string interpolation. Escape kel to parse it. - --- + +--- + +##++ kel + +Parse ASCII character 123, kel. +Note that this, with ker, opens and closes a Hoon expression for Hoon string interpolation. Escape kel to parse it. + +####Summary + Produce the rule just slammed with '{' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "\{" kel) ~~~7b. ~tadbyl-hilbel/try=> `cord`(scan "\{" kel) @@ -4448,11 +5471,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~7b. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (kel [[1 1] " \{"]) [p=[p=1 q=1] q=~] -++ ker - Parse ASCII character 125, ker. - --- + +--- + +##++ ker + +Parse ASCII character 125, ker. + +####Summary + Produce the rule just slammed with '}' - --- + +###Examples + ~tadbyl-hilbel/try=> (scan "}" ker) ~~~7d. ~tadbyl-hilbel/try=> `cord`(scan "}" ker) @@ -4461,11 +5492,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~7d. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (ker [[1 1] "\{}"]) [p=[p=1 q=1] q=~] -++ ket - Parse ASCII character 94, ket. - --- + +--- + +##++ ket + +Parse ASCII character 94, ket. + +####Summary + Produce the rule just slammed with '^' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "^" ket) ~~~5e. ~tadbyl-hilbel/try=> `cord`(scan "^" ket) @@ -4474,11 +5513,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~5e. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (ket [[1 1] ".^"]) [p=[p=1 q=1] q=~] -++ lus - Parse ASCII character 43, lus. - --- + +--- + +##++ lus + +Parse ASCII character 43, lus. + +####Summary + Produce the rule just slammed with '+' - --- + +###Examples + ~tadbyl-hilbel/try=> (scan "+" lus) ~~~2b. ~tadbyl-hilbel/try=> `cord`(scan "+" lus) @@ -4487,11 +5534,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~2b. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (lus [[1 1] ".+"]) [p=[p=1 q=1] q=~] -++ hep - Parse ASCII character 45, hep. - --- + +--- + +##++ hep + +Parse ASCII character 45, hep. + +####Summary + Produce the rule just slammed with '-' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "-" hep) ~~- ~tadbyl-hilbel/try=> `cord`(scan "-" hep) @@ -4500,11 +5555,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~- q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (hep [[1 1] ":-"]) [p=[p=1 q=1] q=~] -++ pel - Parse ASCII character 40, pel. - --- + +--- + +##++ pel + +Parse ASCII character 40, pel. + +####Summary + Produce the rule just slammed with '(' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "(" pel) ~~~28. ~tadbyl-hilbel/try=> `cord`(scan "(" pel) @@ -4513,11 +5576,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~28. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (pel [[1 1] ";("]) [p=[p=1 q=1] q=~] -++ pam - Parse ASCII character 38, pam. - --- + +--- + +##++ pam + +Parse ASCII character 38, pam. + +####Summary + Produce the rule just slammed with '&' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "&" pam) ~~~26. ~tadbyl-hilbel/try=> `cord`(scan "&" pam) @@ -4526,11 +5597,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~26. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (pam [[1 1] "?&"]) [p=[p=1 q=1] q=~] -++ per - Parse ASCII character 41, per. - --- + +--- + +##++ per + +Parse ASCII character 41, per. + +####Summary + Produce the rule just slammed with ')' - --- + +###Examples + ~tadbyl-hilbel/try=> (scan ")" per) ~~~29. ~tadbyl-hilbel/try=> `cord`(scan ")" per) @@ -4539,11 +5618,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~29. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (per [[1 1] " )"]) [p=[p=1 q=1] q=~] -++ pat - Parse ASCII character 64, pat. - --- + +--- + +##++ pat + +Parse ASCII character 64, pat. + +####Summary + Produce the rule just slammed with '@' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "@" pat) ~~~4. ~tadbyl-hilbel/try=> `cord`(scan "@" pat) @@ -4552,11 +5639,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~4. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (pat [[1 1] "?@"]) [p=[p=1 q=1] q=~] -++ sel - Parse ASCII character 91, sel. - --- + +--- + +##++ sel + +Parse ASCII character 91, sel. + +####Summary + Produce the rule just slammed with '[' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "[" sel) ~~~5b. ~tadbyl-hilbel/try=> `cord`(scan "[" sel) @@ -4565,11 +5660,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~5b. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (sel [[1 1] "-["]) [p=[p=1 q=1] q=~] -++ sem - Parse ASCII character 59, sem. - --- + +--- + +##++ sem + +Parse ASCII character 59, sem. + +####Summary + Produce the rule just slammed with ';' - --- + +###Exampels + ~tadbyl-hilbel/try=> (scan ";" sem) ~~~3b. ~tadbyl-hilbel/try=> `cord`(scan ";" sem) @@ -4578,11 +5681,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~3b. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (sem [[1 1] " ;"]) [p=[p=1 q=1] q=~] -++ ser - Parse ASCII character 93, ser. - --- + +--- + +##++ ser + +Parse ASCII character 93, ser. + +####Summary + Produce the rule just slammed with ']' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "]" ser) ~~~5d. ~tadbyl-hilbel/try=> `cord`(scan "]" ser) @@ -4591,11 +5702,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~5d. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (ser [[1 1] "[ ]"]) [p=[p=1 q=1] q=~] -++ sig - Parse ASCII character 126, sig. - --- + +--- + +##++ sig + +Parse ASCII character 126, sig. + +####Summary + Produce the rule just slammed with '~' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "~" sig) ~~~~ ~tadbyl-hilbel/try=> `cord`(scan "~" sig) @@ -4604,12 +5723,20 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~~ q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (sig [[1 1] "?~"]) [p=[p=1 q=1] q=~] -++ soq - Parse ASCII character 39, soq. - Note the extra '\' in the slam of soq with just is to escape the first soq because soq denotes a crip. - --- + +--- + +##++ soq + +Parse ASCII character 39, soq. +Note the extra '\' in the slam of soq with just is to escape the first soq because soq denotes a crip. + +####Summary + Produce the rule just slammed with '\'' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "'" soq) ~~~27. ~tadbyl-hilbel/try=> `cord`(scan "'" soq) @@ -4618,11 +5745,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~27. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (soq [[1 1] ">'"]) [p=[p=1 q=1] q=~] -++ tar - Parse ASCII character 42, tar. - --- + +--- + +##++ tar + +Parse ASCII character 42, tar. + +####Summary + Produce the rule just slammed with '*' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "*" tar) ~~~2a. ~tadbyl-hilbel/try=> `cord`(scan "*" tar) @@ -4631,11 +5766,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~2a. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (tar [[1 1] ".*"]) [p=[p=1 q=1] q=~] -++ tec - Parse ASCII character 96, tec. - --- + +--- + +##++ tec + +Parse ASCII character 96, tec. + +####Summary + Produce the rule just slammed with '`' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "`" tec) ~~~6. ~tadbyl-hilbel/try=> `cord`(scan "`" tec) @@ -4644,11 +5787,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~6. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (tec [[1 1] " `"]) [p=[p=1 q=1] q=~] -++ tis - Parse ASCII character 61, tis. - --- + +--- + +##++ tis + +Parse ASCII character 61, tis. + +####Summary + Produce the rule just slammed with '=' - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "=" tis) ~~~3d. ~tadbyl-hilbel/try=> `cord`(scan "=" tis) @@ -4657,11 +5808,18 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~3d. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (tis [[1 1] "|="]) [p=[p=1 q=1] q=~] -++ wut - Parse ASCII character 63, wut. - --- +--- + +##++ wut + +Parse ASCII character 63, wut. + +####Summary + Produce the rule just slammed with '?' - --- + +###Examples + ~tadbyl-hilbel/try=> (scan "?" wut) ~~~3f. ~tadbyl-hilbel/try=> `cord`(scan "?" wut) @@ -4670,11 +5828,19 @@ section 2eF, parsing (ascii) [p=[p=1 q=2] q=[~ [p=~~~3f. q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (wut [[1 1] ".?"]) [p=[p=1 q=1] q=~] -++ zap - Parse ASCII character 33, zap. - --- + +--- + +##++ zap + +Parse ASCII character 33, zap. + +####Summary + Produce the rule just slammed with '!' - --- + +###Examples + ~tadbyl-hilbel/try=> (scan "!" zap) ~~~21. ~tadbyl-hilbel/try=> `cord`(scan "!" zap) @@ -4684,76 +5850,127 @@ section 2eF, parsing (ascii) ~tadbyl-hilbel/try=> (zap [[1 1] "?!"]) [p=[p=1 q=1] q=~] +--- + section 2eG, parsing (whitespace) -++ dog -++ doh - Parse - --- - Produce plug gonadified with dot and gay. - --- +--- + +++ dog + +--- + +##++ doh + +Parse + +####Summary + + Produce plug gonadified with dot and gay. + +####Examples + +--- + +##++ dun + +Parse phep (--) to null (~). + +####Summary -++ dun - Parse phep (--) to null (~). - --- Produce cold slammed with: null plug gonadified with hep and hep, to parse phep. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "--" dun) ~ ~tadbyl-hilbel/try=> (dun [[1 1] "--"]) [p=[p=1 q=3] q=[~ u=[p=~ q=[p=[p=1 q=3] q=""]]]] -++ duz - Parse stet (==) to null (~). - --- + +--- + +##++ duz + +Parse stet (==) to null (~). + +####Summary + Produce cold slammed with: null plug gonadified with tis and tis, to parse stet - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "==" duz) ~ ~tadbyl-hilbel/try=> (duz [[1 1] "== |=..."]) [p=[p=1 q=3] q=[~ u=[p=~ q=[p=[p=1 q=3] q=" |=..."]]]] -++ gah - --- +--- + +##++ gah + +####Summary + Produce mask slammed with the tuple: `@`10, the newline character ' ', the ace character null - --- -++ gap +####Examples + +--- + +##++ gap - --- +--- + +####Summary + Produce cold slammed with: null Plug gonadified with: gaq star slammed with pose gonadified with vul and gah - --- -++ gaq - --- +###Examples + +--- + +##++ gaq + +####Summary + Produce pose gonadifed with: just slammed with the newline character. Plug gonadified with gah and pose gonadified with gah and vul. vul - --- + +####Examples + +--- -++ gay +##++ gay - --- +####Summary + Produce pose gonadified with: gap, which Slam of easy with null - --- + +####Examples + +--- -++ vul - Parse comments and replace them with null. - Note that a comment must be ended with a newline character. - --- +##++ vul + +Parse comments and replace them with null. +Note that a comment must be ended with a newline character. + +####Summary + Produce cold slammed with: Pair null and, plug gonadified with col, col, and, pose gonadified with: @@ -4761,61 +5978,93 @@ section 2eG, parsing (whitespace) shim slammed with 128 and 255 just slammed with the newline operator. (==) Terminates the pair. - --- + +####Examples + +--- section 2eH, parsing (idioms) -++ alf - Parse alphabetic characters, both upper and lowercase. - --- +##++alf + +Parse alphabetic characters, both upper and lowercase. + +####Summary + Produce the rule of pose gonadified with low and hig. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "a" alf) ~~a ~tadbyl-hilbel/try=> (scan "A" alf) ~~~41. ~tadbyl-hilbel/try=> (scan "AaBbCc" (star alf)) "AaBbCc" -++ aln - Parse alphanumeric characters - both alphabetic characters and numbers. - --- + +##++aln + +Parse alphanumeric characters - both alphabetic characters and numbers. + +####Summary + Produce the rule of pose gonadified with low,hig, and nud. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "0" aln) ~~0 ~tadbyl-hilbel/try=> (scan "alf42" (star aln)) "alf42" ~tadbyl-hilbel/try=> (scan "0123456789abcdef" (star aln)) "0123456789abcdef" -++ alp - Parse alphanumeric strings and hep, "-". - --- + +##++alp + +Parse alphanumeric strings and hep, "-". + +####Summary + Produce the rule pose gonadified with low, hig, nud, hep. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "7" alp) ~~7 ~tadbyl-hilbel/try=> (scan "s" alp) ~~s ~tadbyl-hilbel/try=> (scan "123abc-" (star alp)) "123abc-" -++ bet - Parse the hep and lus axis syntax. - --- + +##++bet + +Parse the hep and lus axis syntax. + + +####Summary + Produce the rule pose gonadified with: - (cold 2 hep), which replaces parsed heps with 2s. - (cold 3 lus), which replaced parsed luses with 3s. - --- + (cold 2 hep), which replaces parsed heps with 2s. + (cold 3 lus), which replaced parsed luses with 3s. + +####Examples + ~tadbyl-hilbel/try=> (scan "-" bet) 2 ~tadbyl-hilbel/try=> (scan "+" bet) 3 -++ bin - Parse a tape of binary (0s and 1s) and produce its atomic representation. - --- + +##++bin + +Parse a tape of binary (0s and 1s) and produce its atomic representation. + +####Summary + Produce the slam of bass with 2 and the (most gon but), which produces + +####Examples - --- ~tadbyl-hilbel/try=> (scan "0000" bin) 0 ~tadbyl-hilbel/try=> (scan "0001" bin) @@ -4824,13 +6073,19 @@ section 2eH, parsing (idioms) 2 ~tadbyl-hilbel/try=> (scan "100000001111" bin) 2.063 -++ but + +##++but + Parse a single binary digit. - --- + +####Summary + Produce rule cook slammed with a gate: With sample atom `a` that results in the difference between `a` and '0' (48). All slammed with the rule shim slammed with '0' and '1', to parse either of those characters. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "0" but) 0 ~tadbyl-hilbel/try=> (scan "1" but) @@ -4841,13 +6096,19 @@ section 2eH, parsing (idioms) ! exit ~tadbyl-hilbel/try=> (scan "01" (star but)) ~[0 1] -++ cit + +##++cit + Parse a single octal digit. - --- + +####Summary + Produce rule cook slammed with a gate: With sample atom `a` that results in the difference between `a` and '0' (48). All slammed with the rule shim slammed with '0' and '7', to parse any number between 0 and 7. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "1" cit) 1 ~tadbyl-hilbel/try=> (scan "7" cit) @@ -4858,12 +6119,17 @@ section 2eH, parsing (idioms) ! exit ~tadbyl-hilbel/try=> (scan "60" (star cit)) ~[6 0] -++ dem - Parse a decimal number to an atom. - --- + +##++dem + +Parse a decimal number to an atom. + +####Summary + Produce the slam of bass with 10 (The base number system) and (most gon dit), which produces - --- +####Examples + ~tadbyl-hilbel/try=> (scan "7" dem) 7 ~tadbyl-hilbel/try=> (scan "42" dem) @@ -4872,48 +6138,71 @@ section 2eH, parsing (idioms) 150.000.000 ~tadbyl-hilbel/try=> (scan "12456" dem) 12.456 -++ dit - Parse a single decimal digit. - --- + +##++dit + + Parse a single decimal digit. + +####Summary + Produce the rule cook slammed with a gate: With sample atom `a` that results in the difference between `a` and '0' (48). All slammed with the rule shim slammed with '0' and '9', to parse any number. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "7" dit) 7 ~tadbyl-hilbel/try=> (scan "42" (star dit)) ~[4 2] ~tadbyl-hilbel/try=> (scan "26000" (star dit)) ~[2 6 0 0 0] -++ gul - Parse the axis gal and gar axis syntax. - --- + +##++gul + +Parse the axis gal and gar axis syntax. + +####Summary + Produce the rule pose gonadified with: (cold 2 gal), which replaces parsed gals with 2s. (cold 3 gar), which replaced parsed gars with 3s. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "<" gul) 2 ~tadbyl-hilbel/try=> (scan ">" gul) 3 -++ gon - Parse long numbers - Numbers which wrap around the shell with the line break characters bas and fas. - --- + +##++gon + +Parse long numbers - Numbers which wrap around the shell with the line break characters bas and fas. + +####Summary + Produce the rule pose gonadified with: The rule plug gonadified with: bas, gay, and fas, to succeed to parse a bas, fas, or a gap in text. The rule (easy ~), to succeed to parse but produces null as the parsed text. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "\\/" gon) [~~~5c. ~ ~~~2f.] ~tadbyl-hilbel/try=> (gon [[1 1] "\\/"]) [p=[p=1 q=3] q=[~ u=[p=[~~~5c. ~ ~~~2f.] q=[p=[p=1 q=3] q=""]]]] -++ hex - Parse any hexadecimal number to an atom. - --- + +##++hex + +Parse any hexadecimal number to an atom. + +####Summary + Produce bass slammed with 16 (The base number system) and (most gon hit), which produces the atom - --- +####Examples + ~tadbyl-hilbel/try=> (scan "a" hex) 10 ~tadbyl-hilbel/try=> (scan "A" hex) @@ -4924,11 +6213,17 @@ section 2eH, parsing (idioms) 7.911 ~tadbyl-hilbel/try=> (scan "1EE7" hex) 7.911 -++ hig - Parse a single uppercase letter. - --- + +##++hig + +Parse a single uppercase letter. + +####Summary + Produce the slam of shim with the characters 'A' (65) and 'Z' (90), to parse any character between them, inclusive. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "G" hig) ~~~47. ~tadbyl-hilbel/try=> `cord`(scan "G" hig) @@ -4937,9 +6232,13 @@ section 2eH, parsing (idioms) "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ~tadbyl-hilbel/try=> (hig [[1 1] "G"]) [p=[p=1 q=2] q=[~ [p=~~~47. q=[p=[p=1 q=2] q=""]]]] -++ hit + +##++hit + Parse a hexadecimal digit. - --- + +####Summary + Pose gonadified with: dit, parse a single decimnal digit. Slam cook with: @@ -4947,7 +6246,9 @@ section 2eH, parsing (idioms) The slam of shim with the characters 'a' (97) and 'z' (122), to parse any character between them, inclusive. The slam of shim with the characters 'A' () and 'Z' (), to parse any character between them, inclusive. Terminate the gonadification. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "a" hit) 10 ~tadbyl-hilbel/try=> (scan "A" hit) @@ -4956,11 +6257,17 @@ section 2eH, parsing (idioms) [p=[p=1 q=2] q=[~ [p=10 q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (scan "2A" (star hit)) ~[2 10] -++ low - Parse a single lowercase letter. - --- + +##++low + +Parse a single lowercase letter. + +####Summary + Produce the slam of shim with the characters 'a' (97) and 'z' (122), to parse any character between them, inclusive. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "g" low) ~~g ~tadbyl-hilbel/try=> `cord`(scan "g" low) @@ -4969,30 +6276,39 @@ section 2eH, parsing (idioms) "abcdefghijklmnopqrstuvwxyz" ~tadbyl-hilbel/try=> (low [[1 1] "g"]) [p=[p=1 q=2] q=[~ [p=~~g q=[p=[p=1 q=2] q=""]]]] -++ mes - Parse a hexbyte. - --- + +##++mes + +Parse a hexbyte. + +####Sumamry + Slam cook with: Build dry %gold gate with sample atom `a`, atom `b`. Produce the sum of `a` multiplied by 16 and `b` Plug gonadified with hit and hit, parse two consecutive hex digits. - --- +####Examples + ~tadbyl-hilbel/try=> (scan "2A" mes) 42 ~tadbyl-hilbel/try=> (mes [[1 1] "2A"]) [p=[p=1 q=3] q=[~ u=[p=42 q=[p=[p=1 q=3] q=""]]]] ~tadbyl-hilbel/try=> (scan "42" mes) 66 -++ nix - - --- + +##++nix + Slam boss with 256 - --- -++ nud - Parse a numeric character - A number. - --- +##++nud + +Parse a numeric character - A number. + +####Summary + Produce the slam of shim with the characters '0' (48) and '9' (57), to parse any character between them, inclusive. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "0" nud) ~~0 ~tadbyl-hilbel/try=> (scan "7" nud) @@ -5001,26 +6317,34 @@ section 2eH, parsing (idioms) [p=[p=1 q=2] q=[~ [p=~~1 q=[p=[p=1 q=2] q=""]]]] ~tadbyl-hilbel/try=> (scan "0123456789" (star nud)) "0123456789" -++ poy + +####++poy + Parse an escape character. - --- + +####Summary + Produce pfix gonadified with: bas pose gonadifided with: bas soq mes, to parse a hexbyte. - --- -++ qit - Parse an individual character to its cord atom representation. - --- +##++qit + +Parse an individual character to its cord atom representation. + +####Summary + Produce pose gonadified with: The slam of shim with 32 and 38, to parse any characters between them, inclusive. The slam of shim with 40 and 91, to parse any characters between them, inclusive. The slam of shim with 93 and 126, to parse any characters between them, inclusive. The slam of shim with 128 and 255, to parse any characters between them, inclusive. - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "%" qit) 37 ~tadbyl-hilbel/try=> (scan "0" qit) @@ -5031,45 +6355,48 @@ section 2eH, parsing (idioms) 97 ~tadbyl-hilbel/try=> (scan "cord" (star qit)) ~[99 111 114 100] -++ qut - Parse - --- + +##++qut + +Parse + +####Summary + Slam ifix with: [soq soq] boss slammed with 256 and (most gon qit) - --- + +##++sym -++ sym - - --- - --- +##++ ven -++ ven - --- +##++vit - --- +Parse a text and produce its base 64 encoding + +####Summary -++ vit - Parse a text and produce its base 64 encoding - --- Build list of falling rules to match on with ';~' and pose. Encodes capital letters by - --- - section 2eI, parsing (external) -++ rash - Parse a cord with a given rule and crash if the cord isn't entirely parsed. - --- +##++rash + +Parse a cord with a given rule and crash if the cord isn't entirely parsed. + +####Summary + Build wet %gold gate with sample atom `naf`, rule `sab` Produce the slam of scan with: Trip slammed with `naf`, to turn `naf` into a tape. The rule `sab` - --- + +####Examples + ~tadbyl-hilbel/try=> (rash 'I was the world in which I walked, and what I saw' (star (shim 0 200))) "I was the world in which I walked, and what I saw" ~tadbyl-hilbel/try=> (rash 'abc' (just 'a')) @@ -5082,14 +6409,20 @@ section 2eI, parsing (external) ! {1 3} ! 'syntax-error' ! exit -++ rush - Parse a given with a given rule and produce null if the cord isn't entirely parsed. - --- + +##++rush + +Parse a given with a given rule and produce null if the cord isn't entirely parsed. + +####Summary + Build wet %gold gate with sample atom `naf`, rule `sab` Produce the slam of scan with: Trip slammed with `naf`, to turn `naf` into a tape. The rule `sab` - --- + +####Examples + ~tadbyl-hilbel/try=> (rush 'I was the world in which I walked, and what I saw' (star (shim 0 200))) [~ "I was the world in which I walked, and what I saw"] ~tadbyl-hilbel/try=> (rush 'abc' (just 'a')) @@ -5100,31 +6433,43 @@ section 2eI, parsing (external) ~ ~tadbyl-hilbel/try=> (rush 'abc' (jest 'ab')) ~ -++ rust - Parse a tape with a given rule and produce null if the tape isn't entirely parsed. - --- + +##++rust + +Parse a tape with a given rule and produce null if the tape isn't entirely parsed. + +####Summary + Build wet %gold gate with sample tape `los`, rule `sab` Push `vex` is the rule (full sab) slammed with the beginning of the `los` tape. If: `q.vex`, the parsed result, is null, Then: Produce null. Else: Produce the unit with value 'p.u.q.vex', the parsed text. - --- + +####Examples + ~tadbyl-hilbel/try=> (rust "I was the world in which I walked, and what I saw" (star (shim 0 200))) [~ "I was the world in which I walked, and what I saw"] ~tadbyl-hilbel/try=> (rust "Or heard or felt came not but from myself;" (star (shim 0 200))) [~ "Or heard or felt came not but from myself;"] ~tadbyl-hilbel/try=> (rust "And there I found myself more truly and more strange." (jest 'And there I')) ~ + ++ scan - Parse a tape with a given rule and crash if the tape isn't entirely parsed. - --- + +Parse a tape with a given rule and crash if the tape isn't entirely parsed. + +####Summary + Build wet %gold gate with sample tape `los`, rule `sab` Push `vex` is the rule (full sab) slammed with the beginning of the `los` tape. If: `q.vex` is null, Then: Add to the crash with message 'syntax-error''s trace: show slammed with [%m '{%d %d}'], `p.p.vex`, `q.p.vex`, and null Else: Produce the parsing output of `vex` - --- + +####Examples + ~tadbyl-hilbel/try=> (scan "I was the world in which I walked, and what I saw" (star (shim 0 200))) "I was the world in which I walked, and what I saw" ~tadbyl-hilbel/try=> (scan "Or heard or felt came not but from myself;" (star (shim 0 200))) @@ -5136,9 +6481,12 @@ section 2eI, parsing (external) section 2eJ, formatting (basic text) -++ cass - Produce the case insensitive (all lowercase) cord of a tape. - --- +##++cass + +Produce the case insensitive (all lowercase) cord of a tape. + +####Summary + Build wet %gold gate with sample tape `vib` Slam rap with: 3, to rap by bytes @@ -5148,7 +6496,9 @@ section 2eJ, formatting (basic text) Unless: `a` is greater than or equal to 'A' or less than or equal to 'Z', Then: Produce `a`, Else: Produce the difference between `a` and 32. - --- + +####Examples + ~tadbyl-hilbel/try=> (cass "john doe") 7.309.170.810.699.673.450 ~tadbyl-hilbel/try=> `cord`(cass "john doe") @@ -5157,9 +6507,13 @@ section 2eJ, formatting (basic text) 2.792.832.775.110.938.439.066.079.945.313 ~tadbyl-hilbel/try=> `cord`(cass "abc, 123, !@#") 'abc, 123, !@#' -++ cuss - Turn all occurances of lowercase letters in any tape into uppercase letters, as a cord. - --- + +##++cuss + +Turn all occurances of lowercase letters in any tape into uppercase letters, as a cord. + +####Summary + Build dry %gold gate with sample tape `vib` Yield cord Slam rap with: @@ -5170,7 +6524,9 @@ section 2eJ, formatting (basic text) Unless: `a` is greater than or equal to 'A' or less than or equal to 'Z', Then: Produce `a`, Else: Produce the difference between `a` and 32. - --- + +####Examples + ~tadbyl-hilbel/try=> (cuss "john doe") 'JOHN DOE' ~tadbyl-hilbel/try=> (cuss "abc ABC 123 !@#") @@ -5179,215 +6535,394 @@ section 2eJ, formatting (basic text) 4.407.873 ~tadbyl-hilbel/try=> (cuss "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsQqRrVvWwXxYyZz") 'AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSQQRRVVWWXXYYZZ' -++ crip - Produce the cord of a tape. - --- + +##++crip + +Produce the cord of a tape. + +####Summary + Build dry %gold with sample tape `a` Produce the rap of `a` by bytes, cast to a cord. - --- + +####Examples + ~tadbyl-hilbel/try=> (crip "john doe") 'john doe' ~tadbyl-hilbel/try=> (crip "abc 123 !@#") 'abc 123 !@#' ~tadbyl-hilbel/try=> `@ud`(crip "abc") 6.513.249 -++ mesc -++ runt -++ sand -++ sane -++ trim -++ trip -++ teff -++ turf -++ tuba -++ tufa -++ tuft -++ wack -++ wick -++ woad -++ wood + +##++mesc + +##++runt + +##++sand + +##++sane + +##++trim + +##++trip + +##++teff + +##++turf + +##++tuba + +##++tufa + +##++tuft + +##++wack + +##++wick + +##++woad + +##++wood section 2eK, formatting (layout) -++ re - ++ ram - ++ win - ++ din - ++ fit - ++ rig - ++ wig +##++re + +##++ram + +##++win + +##++din + +##++fit + +##++rig + +##++wig section 2eL, formatting (path) -++ ab - ++ bix - ++ hif - ++ huf - ++ hyf - ++ pev - ++ pew - ++ piv - ++ piw - ++ qeb - ++ qex - ++ qib - ++ qix - ++ seb - ++ sed - ++ sev - ++ sew - ++ sex - ++ sib - ++ siq - ++ sid - ++ siv - ++ siw - ++ six - ++ sov - ++ sow - ++ sox - ++ ted - ++ tip - ++ tiq - ++ tid - ++ til - ++ urs - ++ urt - ++ voy - ++ vym - ++ vyn -++ ag - ++ ape - ++ bay - ++ bip - ++ dem - ++ dim - ++ dum - ++ fed - ++ hex - ++ lip - ++ qut - ++ sym - ++ tyq - ++ viz - ++ vum - ++ wiz -++ co - ++ rear - ++ rent - ++ rend - ++ a-co - ++ d-co - ++ r-co - ++ s-co - ++ v-co - ++ w-co - ++ x-co - ++ y-co - ++ z-co - ++ em-co - ++ ox-co - ++ ro-co -++ ne - ++ d - ++ x - ++ v - ++ w -++ mu - ++ zag - ++ zig - ++ zug -++ so - ++ bisk - ++ crub - ++ nuck - ++ nusk - ++ perd - ++ royl - ++ tash - ++ twid - ++ zust -++ scot -++ scow -++ slav -++ slaw -++ slay -++ smyt +##++ab + +##++bix + +##++hif + +##++huf + +##++hyf + +##++pev + +##++pew + +##++piv + +##++piw + +##++qeb + +##++qex + +##++qib + +##++qix + +##++seb + +##++sed + +##++sev + +##++sew + +##++sex + +##++sib + +##++siq + +##++sid + +##++siv + +##++siw + +##++six + +##++sov + +##++sow + +##++sox + +##++ted + +##++tip + +##++tiq + +##++tid + +##++til + +##++urs + +##++urt + +##++voy + +##++vym + +##++vyn + +##++ag + +##++ape + +##++bay + +##++bip + +##++dem + +##++dim + +##++dum + +##++fed + +##++hex + +##++lip + +##++qut + +##++sym + +##++tyq + +##++viz + +##++vum + +##++wiz + +##++co + +##++rear + +##++rent + +##++rend + +##++a-co + +##++d-co + +##++r-co + +##++s-co + +##++v-co + +##++w-co + +##++x-co + +##++y-co + +##++z-co + +##++em-co + +##++ox-co + +##++ro-co + +##++ne + +##++d + +##++x + +##++v + +##++w + +##++mu + +##++zag + +##++zig + +##++zug + +##++so + +##++bisk + +##++crub + +##++nuck + +##++nusk + +##++perd + +##++royl + +##++tash + +##++twid + +##++zust + +##++scot + +##++scow + +##++slav + +##++slaw + +##++slay + +##++smyt section 2eM, regular-expressions -++ pars -++ nor -++ les -++ lep -++ alm -++ alb -++ mis -++ anns -++ mall -++ bets -++ ranc -++ flap -++ rang -++ chun -++ seac -++ sead -++ sade -++ seap -++ cape -++ lower -++ upper -++ digit -++ print -++ graph -++ blank -++ space -++ cntrl -++ alpha -++ alnum -++ punct -++ wordc -++ white -++ xdigi -++ chad -++ escd -++ escp -++ unid -++ proc -++ cont -++ abor -++ matc -++ chet -++ blak -++ deep -++ rexp -++ repg +##++pars + +##++nor + +##++les +##++lep + +##++alm + +##++alb + +##++mis + +##++anns + +##++mall + +##++bets + +##++ranc + +##++flap + +##++rang + +##++chun + +##++seac + +##++sead + +##++sade + +##++seap + +##++cape + +##++lower + +##++upper + +##++digit + +##++print + +##++graph + +##++blank + +##++space + +##++cntrl + +##++alpha + +##++alnum + +##++punct + +##++wordc + +##++white + +##++xdigi + +##++chad + +##++escd + +##++escp + +##++unid + +##++proc + +##++cont + +##++abor + +##++matc + +##++chet + +##++blak + +##++deep + +##++rexp + +##++repg section 2eN, pseudo-cryptography -++ un - ++ wre - ++ wre - ++ xaf - ++ xar - ++ zaf - ++ zar - ++ zyf - ++ zyr +##++un -section 2eO, virtualization +##++wre + +##++wre + +##++xaf + +##++xar + +##++zaf + +##++zar + +##++zyf + +##++zyr + +--- +section 2eO, virtualization +--- + +##++mack + +Accpet a nock subject-formula cell. +Produce a unit result, treating 11 as a crash (i.e. pure nock). + +####Summary -++ mack - Accpet a nock subject-formula cell. - Produce a unit result, treating 11 as a crash (i.e. pure nock). - --- Creates a dry %gold gate accepting cell ['sub' 'fol']. Its output is a unit (of a noun). Let 'ton' be the result of minking the sample, with a sky that produces ~ on any input, halting interpretation. Unless ton has stem 0, produce the empty unit, otherwise produce one containing ton's bulb. - --- + +####Examples + ~zod/try=> (mack [[1 2 3] [0 1]]) [~ [1 2 3]] ~zod/try=> (mack [41 4 0 1]) @@ -5398,10 +6933,13 @@ section 2eO, virtualization [~ 6] ~zod/try=> ;;((unit ,@tas) (mack [[1 %yes %no] 6 [0 2] [0 6] 0 7])) [~ %no] -++ mink - XX - Description: - Bottom-level mock (virtual nock) interpreter. + +##++mink + +Bottom-level mock (virtual nock) interpreter. + +####Summary + Accepts a nock subject-formula cell, and an %iron gate which accepts any noun and produces a unit, which is defined to be mock 11. Produces a ++tone, which is the result of the virtualized computation. @@ -5472,17 +7010,23 @@ section 2eO, virtualization Tail-recur with fol replaced by d and tax prepended with a pair of b and the bulb of ben. Else tail-recur with just fol replaced by d. - Examples: + +####Examples + XX -++ mock - XX - Description: - Accepts a nock subject-formula cell and an %iron gate which - accepts any noun and produces a unit (this is used as nock 11). - Produces a ++toon, which is a sucesful, blocked, or crashed result. - --- + +##++mock + +Accepts a nock subject-formula cell and an %iron gate which +accepts any noun and produces a unit (this is used as nock 11). +Produces a ++toon, which is a sucesful, blocked, or crashed result. + +####Summary + Compose ++mook and ++mink. - Examples + +####Examples + ~zod/try=> (mock [5 4 0 1] ,~) [%0 p=6] ~zod/try=> (mock [~ 11 1 0] |=(* `999)) @@ -5498,10 +7042,12 @@ section 2eO, virtualization ~zod/try=> ;;(tape +:(mock [[[4 4 4 4 0 3] 10] 11 9 2 0 1] |=(* `[<+<>]))) "14" -++ mook - XX - Description: - Intelligently render crash annotation. +####++mook + +Intelligently render crash annotation. + +####Summary + Accepts a ++tone, produces a ++toon --- Create a dry %gold gate accepting a tone we name 'ton' @@ -5544,7 +7090,8 @@ section 2eO, virtualization [ [ q.p]] in the pint in sot rendered as @ud "]>" - Examples +####Examples + ~zod/try=> (mook [%0 5 4 5 1]) [%0 p=[5 4 5 1]] ~zod/try=> (mook [%2 ~[[%hunk %rose ["<" "," ">"] ~[[%leaf "err"]]]]]) @@ -5553,329 +7100,328 @@ section 2eO, virtualization [%2 p=~[[%leaf p="do print"]]] ~zod/try=> (mook [%2 ~[[%spot /b/repl [[1 1] 1 2]] [%mean |.(!!)]]]) [%2 p=~[[%leaf p="/b/repl/:<[1 1].[1 2]>"] [%leaf p="####"]]] -++ mang - XX - Description: - XX - --- - XX - Examples - XX -++ mong - XX - Comment: - XX - Description: - Mang is just like mack, but accepting a sky. - It produces a unit computation result. - --- + +--- + +####++mang + +Work just like in `++makc`, but accept a `++sky`. +Produce a unit computation result. + +####Summary + Creates a dry %gold gate accepting cell ['sub' 'fol'] and an %iron unit-clam 'sky'. Its output is a unit (of a noun). Let 'ton' be the result of monging the sample. Unless ton has stem 0, produce the empty unit, otherwise produce one containing ton's bulb. -++ mung - XX - Description: - XX - --- - XX - Examples - XX -++ mule - XX - Description: - XX - --- - XX - Examples - XX -++ mute - XX - Description: - XX - --- - XX - Examples - XX +--- +##++mung + +--- + +##++mule + +--- + +##++mute + +--- section 2eP, diff **noted as "(move me)" in source** +--- -++ berk -++ diff -++ loss - ++ abet - ++ hink - ++ lonk - ++ lune - ++ merg - ++ main -++ locz -++ lore -++ role -++ lump -++ lure -++ limp -++ hump -++ husk -++ lurk -++ lusk - ++ abet - ++ done - ++ main -++ nude - ++ axes - ++ tred +##++ berk +##++ diff +##++ loss +## ++ abet +## ++ hink +## ++ lonk +## ++ lune +## ++ merg +## ++ main +##++ locz +##++ lore +##++ role +##++ lump +##++ lure +##++ limp +##++ hump +##++ husk +##++ lurk +##++ lusk +## ++ abet +## ++ done +## ++ main +##++ nude +## ++ axes +## ++ tred +--- section 2eW, lite number theory +--- -++ egcd -++ pram -++ ramp -++ fo - ++ dif - ++ exp - ++ fra - ++ inv - ++ pro - ++ sit - ++ sum -++ ga - ++ dif - ++ dub - ++ pro - ++ toe - ++ sit - ++ fra - ++ inv - ++ pow - ++ pro +##++ egcd +##++ pram +##++ ramp +##++ fo +## ++ dif +## ++ exp +## ++ fra +## ++ inv +## ++ pro +## ++ sit +## ++ sum +##++ ga +## ++ dif +## ++ dub +## ++ pro +## ++ toe +## ++ sit +## ++ fra +## ++ inv +## ++ pow +## ++ pro -section 2eX, jetted crypto +--- +section 2eX, jetted crypto +--- -++ aesc - ++ en - ++ de -++ ahem - ++ cipa - ++ co - ++ ix - ++ ro - ++ su - ++ pen - ++ co - ++ ix - ++ ro - ++ su - ++ pin - ++ co - ++ ix - ++ ro - ++ su - ++ mcol - ++ pode - ++ sube - ++ be - ++ ankh - ++ sark - ++ srow - ++ subs - ++ ex - ++ ix -++ curt - ++ cla - ++ sqr - ++ inv - ++ cad - ++ cub -++ ed - ++ norm - ++ xrec - ++ ward - ++ scam - ++ etch - ++ curv - ++ deco - ++ bb - ++ puck - ++ suck - ++ sign - ++ veri +##++ aesc +## ++ en +## ++ de +##++ ahem +## ++ cipa +## ++ co +## ++ ix +## ++ ro +## ++ su +## ++ pen +## ++ co +## ++ ix +## ++ ro +## ++ su +## ++ pin +## ++ co +## ++ ix +## ++ ro +## ++ su +## ++ mcol +## ++ pode +## ++ sube +## ++ be +## ++ ankh +## ++ sark +## ++ srow +## ++ subs +## ++ ex +## ++ ix +##++ curt +## ++ cla +## ++ sqr +## ++ inv +## ++ cad +## ++ cub +##++ ed +## ++ norm +## ++ xrec +## ++ ward +## ++ scam +## ++ etch +## ++ curv +## ++ deco +## ++ bb +## ++ puck +## ++ suck +## ++ sign +## ++ veri -section 2eY, SHA-256 +--- +section 2eY, SHA-256 +--- -++ shad -++ shaf -++ shak -++ sham -++ shas -++ shax -++ shaw -++ og - ++ rad - ++ raw -++ shaz -++ shal -++ shan +##++ shad +##++ shaf +##++ shak +##++ sham +##++ shas +##++ shax +##++ shaw +##++ og +## ++ rad +## ++ raw +##++ shaz +##++ shal +##++ shan +--- section 2eZ, OLD rendering +--- -++ show - ++ shep - ++ shop -++ at - ++ r - ++ rf - ++ rn - ++ rt - ++ rta - ++ rtam - ++ rub - ++ rud - ++ rum - ++ rup - ++ ruv - ++ rux +##++ show +## ++ shep +## ++ shop +##++ at +## ++ r +## ++ rf +## ++ rn +## ++ rt +## ++ rta +## ++ rtam +## ++ rub +## ++ rud +## ++ rum +## ++ rup +## ++ ruv +## ++ rux +--- chapter 2f, Hoon proper +--- -section 2fA, miscellaneous funs +--- +section 2fA, miscellaneous funs +--- -++ bull -++ cain -++ cell -++ core -++ cube -++ face -++ bean -++ flay -++ flee -++ foil -++ fork -++ cove -++ comb -++ cond -++ cons -++ fitz -++ flan -++ flip -++ flor -++ hike -++ hoax -++ hoof -++ jock -++ look -++ make -++ noah -++ onan -++ rain -++ ream -++ reck -++ seed -++ seem -++ seer -++ sell -++ pave -++ loot -++ slam -++ slim -++ slit -++ slym -++ slap -++ slop -++ skol -++ spat -++ spuc -++ spec -++ spud -++ slot -++ slum -++ stab -++ wash +##++ bull +##++ cain +##++ cell +##++ core +##++ cube +##++ face +##++ bean +##++ flay +##++ flee +##++ foil +##++ fork +##++ cove +##++ comb +##++ cond +##++ cons +##++ fitz +##++ flan +##++ flip +##++ flor +##++ hike +##++ hoax +##++ hoof +##++ jock +##++ look +##++ make +##++ noah +##++ onan +##++ rain +##++ ream +##++ reck +##++ seed +##++ seem +##++ seer +##++ sell +##++ pave +##++ loot +##++ slam +##++ slim +##++ slit +##++ slym +##++ slap +##++ slop +##++ skol +##++ spat +##++ spuc +##++ spec +##++ spud +##++ slot +##++ slum +##++ stab +##++ wash -section 2fB, macro expansion +--- +section 2fB, macro expansion +--- -++ ah - ++ blue - ++ gray - ++ puce -++ al - ++ blah - ++ home - ++ bunt - ++ clam - ++ cloq - ++ whip -++ ap - ++ etch - ++ feck - ++ hock - ++ open - ++ rake - ++ rusk +##++ ah +## ++ blue +## ++ gray +## ++ puce +##++ al +## ++ blah +## ++ home +## ++ bunt +## ++ clam +## ++ cloq +## ++ whip +##++ ap +## ++ etch +## ++ feck +## ++ hock +## ++ open +## ++ rake +## ++ rusk -section 2fC, compilation proper +--- +section 2fC, compilation proper +--- -++ ut - ++ burn - ++ busk - ++ conk - ++ crop - ++ dext - ++ sint - ++ cool - ++ dank - ++ dart - ++ deal - ++ dial - ++ dish - ++ doge - ++ dole - ++ duck - ++ dune - ++ dunk - ++ fino - ++ fink - ++ finq - ++ fire - ++ firm - ++ fish - ++ fuse - ++ gain - ++ hang - ++ harp - ++ lose - ++ chip - ++ heal - ++ mint - ++ nice - ++ grow - ++ moot - ++ mull - ++ both - ++ nice - ++ grow - ++ bake - ++ meet - ++ nest - ++ cong - ++ cram - ++ dext - ++ sint - ++ park - ++ peek - ++ play - ++ reco - ++ repo - ++ rest - ++ seek - ++ seep - ++ sift - ++ snub - ++ tack - ++ tock - ++ wrap +##++ ut +## ++ burn +## ++ busk +## ++ conk +## ++ crop +## ++ dext +## ++ sint +## ++ cool +## ++ dank +## ++ dart +## ++ deal +## ++ dial +## ++ dish +## ++ doge +## ++ dole +## ++ duck +## ++ dune +## ++ dunk +## ++ fino +## ++ fink +## ++ finq +## ++ fire +## ++ firm +## ++ fish +## ++ fuse +## ++ gain +## ++ hang +## ++ harp +## ++ lose +## ++ chip +## ++ heal +## ++ mint +## ++ nice +## ++ grow +## ++ moot +## ++ mull +## ++ both +## ++ nice +## ++ grow +## ++ bake +## ++ meet +## ++ nest +## ++ cong +## ++ cram +## ++ dext +## ++ sint +## ++ park +## ++ peek +## ++ play +## ++ reco +## ++ repo +## ++ rest +## ++ seek +## ++ seep +## ++ sift +## ++ snub +## ++ tack +## ++ tock +## ++ wrap section 2fD, grammar @@ -6195,9 +7741,12 @@ section 2fD, grammar ifix slammed with [pel per], more slammed with ace, bet. --- - ++ pep - Wrapper tuna. - --- +##++ pep + +Wrapper tuna. + +####Summary + Slam cook with: Build dry %gold gate with sample list of tuna `a` which produces `a` Gonadify pose with: @@ -6212,12 +7761,15 @@ section 2fD, grammar Gonadify plug with bat, easy slammed with null. Terminate plug gonadification. Terminate pose gonadification. - --- - - ++ puv - Wide/tall flow. Parse wide form interpolated Hoon code in any tag, + +--- + +##++ puv + +Wide/tall flow. Parse wide form interpolated Hoon code in any tag, - --- +###Summary + Slam cook with: Build dry %gold with samlpe list of beets `a` which produces `a` The slam of star with: @@ -6242,10 +7794,15 @@ section 2fD, grammar Just slammed with '\0a' Stag slammed with %a, sump Terminate pose gonadification. - --- - ++ rab - Beet to tuna. - --- + +--- + +##++ rab + +Beet to tuna. + +####Summary + Build a dry %gold gate with sample list of beets, `reb` Yield list of tuna. Push bunt of [sim=(list ,@) tuz=(list tuna)] @@ -6258,9 +7815,15 @@ section 2fD, grammar Else: Push `zut` is the toss of `reb` for the tail of `reb`, `sim` for null If: `sim` is null, Then: Produce [i.reb zut], Else: Produce [[%a %smdq (flop sim)] i.reb zut] - ++ sag - Produce a twig from a tuna. - --- + +--- + +##++ sag + +Produce a twig from a tuna. + +####Summary + Build dry %gold gate with sample list of tunas, `lut` Yield twig. Pair %cltr and, @@ -6284,90 +7847,340 @@ section 2fD, grammar if %f, produce where $(lut, t.lut) is the toss of `lut` for the tail of `lut`. Terminate switch statement. - --- - ++ scat - ++ soil - ++ sump - ++ noil - ++ toad - ++ rung - ++ gunk - ++ muck - ++ butt - ++ loaf - ++ lobe - ++ exqa - ++ exqb - ++ exqc - ++ exqd - ++ exqe - ++ norm - ++ boog - ++ wisp - ++ toad - ++ rune - ++ glop - ++ gunk - ++ butt - ++ ulva - ++ hank - ++ loaf - ++ lobe - ++ mash - ++ muck - ++ teak - ++ race - ++ rack - ++ rick - ++ expa - ++ expb - ++ expc - ++ expd - ++ expe - ++ expf - ++ expg - ++ exph - ++ expi - ++ expj - ++ expk - ++ expm - ++ expn - ++ expo - ++ expp - ++ expq - ++ expr - ++ exps - ++ expt - ++ expu - ++ expv - ++ expw - ++ expx - ++ expy - ++ expz - ++ hina - ++ hinb - ++ hinc - ++ hind - ++ hine - ++ hinf - ++ hing - ++ bonk - ++ bont - ++ bony - ++ bonz - ++ lung - ++ long - ++ lobo - ++ loon - ++ lute - ++ rope - ++ tall - ++ wide - ++ hill - ++ howl - ++ toil - ++ wart -++ vest -++ vice +--- +## ++ scat +--- + +## ++ soil + +--- + +## ++ sump + +--- + +## ++ noil + +--- + +## ++ toad + +--- + +## ++ rung + +--- + +## ++ gunk + +--- + +## ++ muck + +--- + +## ++ butt + +--- + +## ++ loaf + +--- + +## ++ lobe + +--- + +## ++ exqa + +--- + +## ++ exqb + +--- + +## ++ exqc + +--- + +## ++ exqd + +--- + +## ++ exqe + +--- + +## ++ norm + +--- + +## ++ boog + +--- + +## ++ wisp + +--- + +## ++ toad + +--- + +## ++ rune + +--- + +## ++ glop + +--- + +## ++ gunk + +--- + +## ++ butt + +--- + +## ++ ulva + +--- + +## ++ hank + +--- + +## ++ loaf + +--- + +## ++ lobe + +--- + +## ++ mash + +--- + +## ++ muck + +--- + +## ++ teak + +--- + +## ++ race + +--- + +## ++ rack + +--- + +## ++ rick + +--- + +## ++ expa + +--- + +## ++ expb + +--- + +## ++ expc + +--- + +## ++ expd + +--- + +## ++ expe + +--- + +## ++ expf + +--- + +## ++ expg + +--- + +## ++ exph + +--- + +## ++ expi + +--- + +## ++ expj + +--- + +## ++ expk + +--- + +## ++ expm + +--- + +## ++ expn + +--- + +## ++ expo + +--- + +## ++ expp + +--- + +## ++ expq + +--- + +## ++ expr + +--- + +## ++ exps + +--- + +## ++ expt + +--- + +## ++ expu + +--- + +## ++ expv + +--- + +## ++ expw + +--- + +## ++ expx + +--- + +## ++ expy + +--- + +## ++ expz + +--- + +## ++ hina + +--- + +## ++ hinb + +--- + +## ++ hinc + +--- + +## ++ hind + +--- + +## ++ hine + +--- + +## ++ hinf + +--- + +## ++ hing + +--- + +## ++ bonk + +--- + +## ++ bont + +--- + +## ++ bony + +--- + +## ++ bonz + +--- + +## ++ lung + +--- + +## ++ long + +--- + +## ++ lobo + +--- + +## ++ loon + +--- + +## ++ lute + +--- + +## ++ rope + +--- + +## ++ tall + +--- + +## ++ wide + +--- + +## ++ hill + +--- + +## ++ howl + +--- + +## ++ toil + +--- + +## ++ wart + +--- + +##++ vest + +--- + +##++ vice + +---