@@ -10,30 +10,26 @@ Add
11Produces the sum of `a` and `b`.
11Produces the sum of `a` and `b`.
13−Accepts
13+#### Accepts
16`a` is an atom.
15`a` is an atom.
18`b` is an atom.
17`b` is an atom.
20−Produces
19+#### Produces
30 |= [a=@ b=@]
27 |= [a=@ b=@]
32 ?: =(0 a) b
29 ?: =(0 a) b
33 $(a (dec a), b +(b))
30 $(a (dec a), b +(b))
35−Examples
32+#### Examples
38 > (add 2 2)
34 > (add 2 2)
@@ -44,15 +40,15 @@ Examples
44 > (add 1.333 (mul 2 2))
40 > (add 1.333 (mul 2 2))
47− > `@`'a' ::`'a'` is an atom represented as a different data type.
48− 97 We cast it to the aura `@` to see what its integer representation is.
49 > (add 'a' 4)
43 > (add 'a' 4)
51− (add 'a' 'b')
46+ > (add 'a' 'b')
54− > (add 0xc 0xf) ::`0xc` and `0xf` are of the hexadecimal soft atom type (`@ux`).
49+ > (add 0xc 0xf)
56 > `@ux`(add 0xc 0xf)
52 > `@ux`(add 0xc 0xf)
@@ -63,31 +59,27 @@ Decrement
64Decrements `a` by `1`.
60Decrements `a` by `1`.
66−Accepts
62+#### Accepts
69`a` is an atom.
64`a` is an atom.
71−Produces
66+#### Produces
82− ~_ leaf+"decrement-underflow"
75+ ~| %decrement-underflow
86 ?: =(a +(b)) b
79 ?: =(a +(b)) b
89−Examples
82+#### Examples
@@ -107,29 +99,27 @@ Examples
111### `++div`
104### `++div`
115−Computes `a` divided by `b`. Only a whole number, without the remainder, is produced.
108+Computes `a` divided by `b` without remainder.
117−Accepts
110+#### Accepts
120`a` is an atom.
112`a` is an atom.
122`b` is an atom.
114`b` is an atom.
124−Produces
116+#### Produces
129−Source
120+#### Source
134 |: [a=`@`1 b=`@`1]
124 |: [a=`@`1 b=`@`1]
@@ -139,9 +129,10 @@ Source
140 ?: (lth a b) c
130 ?: (lth a b) c
141 $(a (sub a b), c +(c))
131 $(a (sub a b), c +(c))
143−Examples
134+#### Examples
146 > (div 4 2)
137 > (div 4 2)
@@ -161,25 +152,6 @@ Examples
162 > (div 0x9f 0x29)
153 > (div 0x9f 0x29)
164− > `@`0x9f ::`0x9f` is an atom represented in the hexadecimal soft atom type (`@ux`).
172− > (div ~sibtel-tallyd ~zod)
176− > `@`~zod ::the above operation returned an error because `~zod` is a representation of `0`.
179− > `@p`2 ::this casts `2` to `@p` to produce the ship name which represents that atom.
181− > (div ~sibtel-tallyd ~bud)
@@ -187,24 +159,28 @@ Examples
188Divide with remainder
160Divide with remainder
190−Computes `a` divided by `b` and the remainder of that operation.
162+Computes `a` divided by `b`, producing the quotient and the remainder.
192−Produces
170+#### Produces
195A cell of atoms.
172A cell of atoms.
197−Source
174+#### Source
202− |= [a=@ b=@]
178+ |= [a=@ b=@]
203− ^- [p=@ q=@]
179+ ^- [p=@ q=@]
204− [(div a b) (mod a b)]
180+ [(div a b) (mod a b)]
206−Examples
182+#### Examples
208 > (dvr 17 8)
184 > (dvr 17 8)
209 [p=2 q=1]
185 [p=2 q=1]
@@ -219,45 +195,38 @@ Examples
220 > (dvr 'ab 'a')
196 > (dvr 'ab 'a')
221 [p=259 q=62]
197 [p=259 q=62]
222− > `@`'a' ::`a` is an atom represented as a different data type.
198+ > `@`'a'
223− 97 We can cast it to the aura `@` to see what its integer representation is.
199+ 97
224 > `@`'ab'
200 > `@`'ab'
232### `++gte`
204### `++gte`
234Greater-than/equal
206Greater-than/equal
236−Tests whether a number `a` is greater than or equal a number `b`.
208+Tests whether `a` is greater than or equal to `b`.
238−Accepts
210+#### Accepts
241`a` is an atom.
212`a` is an atom.
243`b` is an atom.
214`b` is an atom.
245−Produces
216+#### Produces
248−A flag. Our version of a boolean, except that `0` is yes/true and `1` is no/false.
218+A flag.
250−Source
220+#### Source
255 |= [a=@ b=@]
224 |= [a=@ b=@]
257 !(lth a b)
226 !(lth a b)
259−Examples
229+#### Examples
262 > (gte 100 10)
231 > (gte 100 10)
@@ -268,18 +237,6 @@ Examples
268 > (gte 3 4)
237 > (gte 3 4)
271− > `@`'h' ::`h` is an atom represented as a `cord`, one of many different soft atom types.
272− 104 ::We can cast it to the mold `@` to see what its integer representation is.
@@ -289,50 +246,35 @@ Greater-than
290Tests whether `a` is greater than `b`.
247Tests whether `a` is greater than `b`.
292−Accepts
249+#### Accepts
295`a` is an atom.
251`a` is an atom.
297`b` is an atom.
253`b` is an atom.
299−Produces
255+#### Produces
302−A flag; our version of a boolean, except that `0` is yes/true and `1` is no/false.
257+A flag.
304−Source
259+#### Source
309 |= [a=@ b=@]
263 |= [a=@ b=@]
311 !(lte a b)
265 !(lte a b)
321 > (gth 'd' 'c')
271 > (gth 'd' 'c')
323− > `@`'d' ::`d` is an atom represented as a `cord`, one of many different soft atom types.
324− 100 ::We can cast it to the mold `@` to see what its integer representation is.
328− > (gth 'doug' 'catherine')
274+ > (gth ~h1 ~m61)
333− 1.871.077.167.441.261.125.987
335− > (gth ~h1 ~m61) ::~h1 and ~m61 are both relative dates. Cast an atom to `@dr` to see its representation in that soft atom type.
277+ > (gth 'steak' 'brisket')
@@ -343,28 +285,25 @@ Less-than/equal
344Tests whether `a` is less than or equal to `b`.
286Tests whether `a` is less than or equal to `b`.
346−Accepts
288+#### Accepts
349`a` is an atom.
290`a` is an atom.
351`b` is an atom.
292`b` is an atom.
353−Produces
294+#### Produces
356−A flag; our version of a boolean, except that `0` is yes/true and `1` is no/false.
296+A flag.
358−Source
298+#### Source
363 |= [a=@ b=@]
302 |= [a=@ b=@]
364 |(=(a b) (lth a b))
303 |(=(a b) (lth a b))
366−Examples
306+#### Examples
369 > (lte 4 5)
308 > (lte 4 5)
@@ -378,6 +317,7 @@ Examples
378 > (lte 0 0)
317 > (lte 0 0)
381 > (lte 'a' 'b')
321 > (lte 'a' 'b')
@@ -388,10 +328,11 @@ Examples
388 > (lte 'abraham' 'bob')
328 > (lte 'abraham' 'bob')
391− > (lte ~m61 ~h1) ::~m61 and ~h1 are both relative dates. Cast an atom to `@dr` to see its representation in that soft atom type.
331+ > (lte ~m61 ~h1)
396### `++lth`
337### `++lth`
@@ -399,20 +340,17 @@ Less-than
400Tests whether `a` is less than `b`.
341Tests whether `a` is less than `b`.
402−Accepts
343+#### Accepts
405`a` is an atom.
345`a` is an atom.
407`b` is an atom.
347`b` is an atom.
409−Produces
349+#### Produces
412−A flag; our version of a boolean, except that `0` is yes/true and `1` is no/false.
351+A flag.
414−Source
353+#### Source
@@ -424,9 +362,8 @@ Source
424 ?& !=(0 b)
362 ?& !=(0 b)
425 $(a (dec a), b (dec b))
363 $(a (dec a), b (dec b))
428−Examples
366+#### Examples
431 > (lth 4 5)
368 > (lth 4 5)
@@ -442,17 +379,13 @@ Examples
443 > (lth 'a' 'b')
380 > (lth 'a' 'b')
445− > `@`'a' ::`a` is an atom represented as a different data type.
382+ > `@`'a'
446− 97 ::We can cast it to the aura `@` to see what its integer representation is.
383+ 97
450 > (lth 'abraham' 'bob')
387 > (lth 'abraham' 'bob')
453− > 30.787.873.400.840.801
@@ -462,30 +395,26 @@ Maximum
463Computes the greater of `a` and `b`.
396Computes the greater of `a` and `b`.
465−Accepts
398+#### Accepts
468`a` is an atom.
400`a` is an atom.
470`b` is an atom.
402`b` is an atom.
472−Produces
404+#### Produces
477−Source
408+#### Source
482 |= [a=@ b=@]
412 |= [a=@ b=@]
484 ?: (gth a b) a
414 ?: (gth a b) a
487−Examples
417+#### Examples
490 > (max 10 100)
419 > (max 10 100)
@@ -499,16 +428,16 @@ Examples
499 > (max 'abraham' 'bob')
428 > (max 'abraham' 'bob')
500 30.787.873.400.840.801
429 30.787.873.400.840.801
502− > `@t`(max 'abraham' 'bob') ::`@t` displays the product as a `cord` (string) instead of a number.
431+ > `@t`(max 'abraham' 'bob')
503 'abraham'
432 'abraham'
505 > `@t`(max 'abraham' 'benjamin')
434 > `@t`(max 'abraham' 'benjamin')
506 'benjamin'
435 'benjamin'
508− > `@dr`(max ~m6 ~h1) ::~m61 and ~h1 are relative dates. Cast an atom to `@dr` to see its representation in that soft atom type.
437+ > `@dr`(max ~m6 ~h1)
511− >`@ux`(max 0xe1 0x1e) ::`0xe1` and `0x1e` are of the hexadecimal soft atom type (`@ux`).
440+ >`@ux`(max 0xe1 0x1e)
@@ -518,30 +447,26 @@ Minimum
519Computes the lesser of `a` and `b`.
448Computes the lesser of `a` and `b`.
521−Accepts
450+#### Accepts
524`a` is an atom.
452`a` is an atom.
526`b` is an atom.
454`b` is an atom.
528−Produces
456+#### Produces
533−Source
460+#### Source
538 |= [a=@ b=@]
464 |= [a=@ b=@]
540 ?: (lth a b) a
466 ?: (lth a b) a
543−Examples
469+#### Examples
546 > (min 10 100)
471 > (min 10 100)
@@ -555,16 +480,17 @@ Examples
555 > (min 'abraham' 'bob')
480 > (min 'abraham' 'bob')
556 6.451.042
481 6.451.042
558− > `@t`(min 'abraham' 'bob') ::`@t` causes the product to display as a `cord` instead of a number.
483+ > `@t`(min 'abraham' 'bob')
561 > `@t`(min 'abraham' 'benjamin')
486 > `@t`(min 'abraham' 'benjamin')
562 'abraham'
487 'abraham'
564− > `@dr`(min ~m6 ~h1) ::~m61 and ~h1 are relative dates. Cast an atom to `@dr` to see its representation in that soft atom type.
489+ > `@dr`(min ~m6 ~h1)
569### `++mod`
495### `++mod`
@@ -572,30 +498,28 @@ Modulus
573Computes the remainder of dividing `a` by `b`.
499Computes the remainder of dividing `a` by `b`.
575−Accepts
501+#### Accepts
578`a` is an atom.
503`a` is an atom.
580`b` is an atom.
505`b` is an atom.
582−Produces
507+#### Produces
587−Source
511+#### Source
592 |: [a=`@`1 b=`@`1]
515 |: [a=`@`1 b=`@`1]
594 ?< =(0 b)
517 ?< =(0 b)
595 (sub a (mul b (div a b)))
518 (sub a (mul b (div a b)))
597−Examples
521+#### Examples
600 > (mod 5 2)
524 > (mod 5 2)
@@ -609,18 +533,13 @@ Examples
609 > (mod 40 20)
533 > (mod 40 20)
612− > `@`'c' ::`a` is an atom represented as a different data type.
536+ > `@`'c'
613− 99 ::We can cast it to the aura `@` to see what its integer representation is.
537+ 99
616 > (mod 'c' 'a')
540 > (mod 'c' 'a')
619− > (mod 0xe1 0x1e) ::`0xe1` and `0x1e` are of the hexadecimal soft atom type (`@ux`).
621− > `@ux`(mod 0xe1 0x1e)
626### `++mul`
545### `++mul`
@@ -629,20 +548,17 @@ Multiply
630Multiplies `a` by `b`.
549Multiplies `a` by `b`.
632−Accepts
551+#### Accepts
635`a` is an atom.
553`a` is an atom.
637`b` is an atom.
555`b` is an atom.
639−Produces
557+#### Produces
644−Source
561+#### Source
@@ -652,9 +568,8 @@ Source
653 ?: =(0 a) c
569 ?: =(0 a) c
654 $(a (dec a), c (add b c))
570 $(a (dec a), c (add b c))
656−Examples
572+#### Examples
659 > (mul 3 4)
574 > (mul 3 4)
@@ -662,19 +577,18 @@ Examples
662 > (mul 0 1)
577 > (mul 0 1)
665− > `@`'a' ::`a` is an atom represented as a different data type.
580+ > `@`'a'
666− 97 ::We can cast it to the aura `@` to see what its integer representation is.
581+ 97
669 > (mul 'a' 'b')
584 > (mul 'a' 'b')
672− > (mul 0x1f 0xe) ::`0x1f` and `0xe` are of the hexadecimal soft atom type (`@ux`).
674 >`@ux`(mul 0x1f 0xe)
587 >`@ux`(mul 0x1f 0xe)
679### `++sub`
593### `++sub`
@@ -682,31 +596,29 @@ Subtract
683Subtracts `b` from `a`.
597Subtracts `b` from `a`.
685−Accepts
599+#### Accepts
688`a` is an atom.
601`a` is an atom.
690`b` is an atom.
603`b` is an atom.
692−Produces
605+#### Produces
697−Source
609+#### Source
702− |= [a=@ b=@]
613+ |= [a=@ b=@]
703− ~| %subtract-underflow
614+ ~_ leaf+"subtract-underflow"
705− ?: =(0 b) a
616+ ?: =(0 b) a
706− $(a (dec a), b (dec b))
617+ $(a (dec a), b (dec b))
708−Examples
621+#### Examples
711 > (sub 10 5)
623 > (sub 10 5)
@@ -723,14 +635,14 @@ Examples
724 > (sub 'c' 'a')
636 > (sub 'c' 'a')
726− > `@`'c' ::`a` is an atom represented as a different data type.
638+ > `@`'c'
727− 99 ::We can cast it to the aura `@` to see what its integer representation is.
639+ 99
731 > (sub 0x1f 0xe)
643 > (sub 0x1f 0xe)
733− > `@ux`(sub 0x1f 0xe) ::`0xe1` and `0x1e` are of the hexadecimal soft atom type (`@ux`).
645+ > `@ux`(sub 0x1f 0xe)