Kitten

The Kitten Programming Language

Kitten is a statically typed, stack-based functional programming language designed to be simple and fast. It is a concatenative language, combining aspects of imperative and pure functional programming. There is an introduction available and a tutorial in progress.

Features

Concatenative Programming
A compositional style of programming to make refactoring easier and improve code reuse.
Static Types
Type inference based on Hindley–Milner to help improve correctness and performance.
Permissions
A system of effect types to control where side-effects are allowed.
Deterministic Resource Management
Automatic management of memory and resources with no garbage collector.

Examples

Hello world

"meow" say  // Kittens don't speak English.

Hello user

define greet (List<Char> -> +IO):
  -> name;
  ["Hello, ", name, "!"] concat say

"What is your name? " ask
greet

Larger examples

The source code is hosted on GitHub, and you can join #concatenative on Freenode to keep up with the latest developments.