mirror of
https://github.com/urbit/shrub.git
synced 2024-12-26 21:44:11 +03:00
3c3f7e761e
* Move extraneous stuff out of pkg/urbit/* * s/urb/herb/g * Removed some boilerplate for `urbit` builds. * Build urbit tests and run them in the nix build.
46 lines
1.1 KiB
Plaintext
46 lines
1.1 KiB
Plaintext
A noun is an atom or a cell. An atom is a natural number. A cell is an ordered pair of nouns.
|
|
|
|
Reduce by the first matching pattern; variables match any noun.
|
|
|
|
nock(a) *a
|
|
[a b c] [a [b c]]
|
|
|
|
?[a b] 0
|
|
?a 1
|
|
+[a b] +[a b]
|
|
+a 1 + a
|
|
=[a a] 0
|
|
=[a b] 1
|
|
|
|
/[1 a] a
|
|
/[2 a b] a
|
|
/[3 a b] b
|
|
/[(a + a) b] /[2 /[a b]]
|
|
/[(a + a + 1) b] /[3 /[a b]]
|
|
/a /a
|
|
|
|
#[1 a b] a
|
|
#[(a + a) b c] #[a [b /[(a + a + 1) c]] c]
|
|
#[(a + a + 1) b c] #[a [/[(a + a) c] b] c]
|
|
#a #a
|
|
|
|
*[a [b c] d] [*[a b c] *[a d]]
|
|
|
|
*[a 0 b] /[b a]
|
|
*[a 1 b] b
|
|
*[a 2 b c] *[*[a b] *[a c]]
|
|
*[a 3 b] ?*[a b]
|
|
*[a 4 b] +*[a b]
|
|
*[a 5 b c] =[*[a b] *[a c]]
|
|
|
|
*[a 6 b c d] *[a *[[c d] 0 *[[2 3] 0 *[a 4 4 b]]]]
|
|
*[a 7 b c] *[*[a b] c]
|
|
*[a 8 b c] *[[*[a b] a] c]
|
|
*[a 9 b c] *[*[a c] 2 [0 1] 0 b]
|
|
*[a 10 [b c] d] #[b *[a c] *[a d]]
|
|
|
|
*[a 11 [b c] d] *[[*[a c] *[a d]] 0 3]
|
|
*[a 11 b c] *[a c]
|
|
|
|
*a *a
|