Kast

A first-class programming language

Functions, types, templates, bindings, AST, IR, the compiler itself — everything is treated as value in Kast, bringing absolute power

Star
print("Hello");
"World" |> print;
module:
let fib = (n :: Int32) -> Int32 => (
    if n < 2 then (
        1
    ) else (
        fib(n - 1) + fib(n - 2)
    )
);
let main = () with io => (
    print("Welcome to the Guessing Number Game :-)");
    let picked :: Int32 = std.random.gen_range(.min = 1, .max = 10);
    print("The number has been picked!");
    let mut first = true;
    loop (
        let prompt = if first then "Guess: " else "Guess again: ";
        first = false;
        let guess = input(prompt) |> String.parse;
        if picked < guess then (
            print("Less!")
        ) else if picked > guess then (
            print("Greater!")
        ) else (
            print("You guessed!");
            break;
        );
    );
);
main();
Read More ⇩
Kast

Current state

The language is actively being developed, but there are still a lot of missing/temporary things.

Kast is not really usable yet.

Overview

Languages core principles are:

Prioritizing being easy to use once you learn the language, not while learning.

Prioritizing maintainability rather than prototyping speed.

Type system allows to catch a lot of bugs at compile time (borrow checking, side effect tracking, etc).

You can read more about language here

Built with Kast

If you want to see some code, take a look at these: