The Nova programming language
20260110T082345
A programming language based on rewriting.
Nova's home web page
See also:
The Pyra programming language
Snippets and examples
Scaffolding for a plant tracker, with visions of an input pipeline.
||
:happy: acorn #1
:hungry: acorn #2
:thirsty: bonsai
:input: ( water bonsai )
| :input: $fact | :rev: $fact
| :rev: $fact | :do: $fact
| :do: ( feed $plant )
:hungry: $plant |
:happy: $plant
:log: fed $plant
| :do: ( feed $plant ) |
:log: $plant isn't hungry!
| :do: ( water $plant )
:thirsty: $plant |
:happy: $plant
:log: watered $plant
| :do: ( water $plant ) |
:log: $plant isn't thirsty!
A decimal counter. Incomplete.
|| :: ( > 0 < )
| :: done :hold: $1 $2 | :: done $1 :hold: $2
| :: done :hold: $1 | :: $1
| :: > | :: holding :hold: >
| :: carry | :: ( done 1 )
| :: ( holding 0 < ) | :: ( done 1 < )
| :: ( holding 1 < ) | :: ( done 2 < )
| :: ( holding 2 < ) | :: ( done 3 < )
| :: ( holding 3 < ) | :: ( done 4 < )
| :: ( holding 4 < ) | :: ( done 5 < )
| :: ( holding 5 < ) | :: ( done 6 < )
| :: ( holding 6 < ) | :: ( done 7 < )
| :: ( holding 7 < ) | :: ( done 8 < )
| :: ( holding 8 < ) | :: ( done 9 < )
| :: ( holding 9 < ) | :: ( carry 0 < )