2021-08-27 03:25:39 +00:00
|
|
|
# Ginger
|
2017-07-12 00:52:07 +00:00
|
|
|
|
2021-08-27 03:25:39 +00:00
|
|
|
Fibonacci function in ginger:
|
2017-07-12 00:52:07 +00:00
|
|
|
|
2021-08-27 03:25:39 +00:00
|
|
|
```
|
2021-12-29 19:32:53 +00:00
|
|
|
fib = {
|
|
|
|
decr = { out = add < (in; -1;); };
|
|
|
|
|
|
|
|
out = {
|
|
|
|
n = 0 < in;
|
|
|
|
a = 1 < in;
|
|
|
|
b = 2 < in;
|
|
|
|
|
|
|
|
out < if < (
|
|
|
|
zero? < n;
|
|
|
|
a;
|
|
|
|
recur < (decr < n; b; add < (a;b;); );
|
|
|
|
);
|
|
|
|
|
|
|
|
} < (in; 0; 1;);
|
|
|
|
};
|
2021-08-27 03:25:39 +00:00
|
|
|
```
|
2017-07-12 00:52:07 +00:00
|
|
|
|
2021-08-27 03:25:39 +00:00
|
|
|
Usage of the function to generate the 6th fibonnaci number:
|
2017-07-12 00:52:07 +00:00
|
|
|
|
2021-08-27 03:25:39 +00:00
|
|
|
```
|
2021-12-29 19:32:53 +00:00
|
|
|
fib < 5;
|
|
|
|
```
|
|
|
|
|
|
|
|
## Development
|
|
|
|
|
|
|
|
Current efforts on ginger are focused on a golang-based virtual machine, which
|
|
|
|
will then be used to bootstrap the language. go >=1.18 is required for this vm.
|
|
|
|
|
|
|
|
If you are on a linux-amd64 machine with nix installed, you can run:
|
|
|
|
|
|
|
|
```
|
|
|
|
nix-shell -A shell
|
2021-08-27 03:25:39 +00:00
|
|
|
```
|
2021-12-29 19:32:53 +00:00
|
|
|
|
|
|
|
from the repo root and you will be dropped into a shell with all dependencies
|
|
|
|
(including the correct go version) in your PATH, ready to use. This could
|
|
|
|
probably be expanded to other OSs/architectures easily, if you care to do so
|
|
|
|
please check out the `default.nix` file and submit a PR!
|