slothlang

Crates.ioslothlang
lib.rsslothlang
version1.4.0
sourcesrc
created_at2022-07-30 15:27:47.174022
updated_at2023-04-11 20:02:09.659627
descriptionA weird, slow and a bit moldy interpreted programming language
homepage
repositoryhttps://github.com/MyselfLeo/sloth
max_upload_size
id635582
size225,512
myselfleo (MyselfLeo)

documentation

README

🦥 Sloth - The weird, slow and a bit moldy programming language

Sloth is an interpreted programming language, implemented in Rust. Its syntax is inspired by C-like languages, Rust, Python, and Lisp-like languages.
I do not ensure the stability of the language: use it at your own risk!

Syntax example

// Return the factorial of @0
define factorial: num -> num {
    @return = 1;
    i = 2;

    while <= i @0 {
        @return = * @return i;
        i = + i 1;
    };
}

define @main: num -> num {
    print(factorial(@0) "\n");
}

Some fundamentals of the Sloth syntax:

  • Operations use the Polish notation
  • Special symbols are prefixed with @: @main, @self, @return...
  • Functions return the content of the variable @return
  • Methods can modify the value referenced by @self
  • Functions/Methods arguments are named @0, @1, etc.

Features

Sloth does not provide common features like else blocks, for loops, etc. There is no error management yet, no compiled module yet, etc.

However, you can overload operators! 🎉

Installation

Install using cargo:

$ cargo install slothlang

I may provide executables in the future.

License

Sloth is licensed under the Apache-2.0 License.

Commit count: 400

cargo fmt