Go to file
Brian Picciano f5f0f6e436 Ditch gim... for now
It was an interesting idea, but now that an actual text-based syntax is
worked out and definitely going to be used gim is just making tests
fail for no gain. It can be resurrected from the git history in the
future, if needed.
2021-12-29 12:51:16 -07:00
gg Make graph generic 2021-12-29 12:32:53 -07:00
graph Make graph generic 2021-12-29 12:32:53 -07:00
sandbox rename Junction to Tuple, update syntax, rename Null to ZeroGraph 2021-08-26 21:26:24 -06:00
vm Make graph generic 2021-12-29 12:32:53 -07:00
.gitignore gitignore 2016-08-07 09:06:36 -06:00
default.nix Make graph generic 2021-12-29 12:32:53 -07:00
go.mod Make graph generic 2021-12-29 12:32:53 -07:00
go.sum make into a module 2021-08-26 21:27:47 -06:00
README.md Make graph generic 2021-12-29 12:32:53 -07:00

Ginger

Fibonacci function in ginger:

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;);
};

Usage of the function to generate the 6th fibonnaci number:

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

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!