harborc 0.1.1

A language that ports: targeting your thermostat, UFO, and kitchen sink.
Documentation

let
    var = do
            $FP +
    end,

    putendl = 
        (10 putchar),
    test =
        fn(x: %int, y: %int) -> %(%int, %int) do
            x@ y@ *
            x@ y@ +
        end,

    protofib =
        fn(a: %int, b: %int) -> %(%int, %int) do
            b@ putnum putendl
            b@ a@ b@ +
        end,

    fact =
        fn(n: %int) -> %int do
            get %int

            let acc = (1 var) in
                1 acc=
                while (n@) do
                    n@ acc@ * acc=
                    n dec
                end
                acc@
            end

            dump %int
        end,

    fib = fn(n: %int) -> %void do
        get %(%int, %int)
        let a = (1 var),
            b = (2 var)
        in
            0 a=
            1 b=
            while (n@) do
                a@ b@ protofib b= a=
                n dec
            end
        end
        dump %(%int, %int)
    end
in
    20 fib putendl

    5 fact putnum putendl
end