Carp - A statically typed lisp, without a GC, for real-time applications.

  •        21

Update (June 12, 2018): We're currently working towards version 0.3.0 of the language. The goal of this version is to be a stable but somewhat limited version of the language (lacking lambdas and union types). Carp is a small programming language designed to work well for interactive and performance sensitive use cases like games, sound synthesis and visualizations.



Related Projects

gluon - A static, type inferred and embeddable language written in Rust.

  •    Rust

Gluon is a small, statically-typed, functional programming language designed for application embedding. Statically typed - Static typing makes it easier to write safe and efficient interfaces between gluon and the host application.

lux - The Lux Programming Language

  •    Clojure

Lux is a new programming language in the making. It's meant to be a functional, statically-typed Lisp that will run on several platforms, such as the Java Virtual Machine and JavaScript interpreters.

Groovy - A dynamic language for the Java platform

  •    Java

Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at multiplying developers’ productivity thanks to a concise, familiar and easy to learn syntax. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming.

Eta - A powerful language for building scalable systems on the JVM

  •    Haskell

Eta is a pure, lazy, strongly typed functional programming language on the JVM. It is a dialect of Haskell on the JVM. It is pure by default which means that calling a function with the same arguments will yield the same results every time. It is lazy by default which means that data stays in unevaluated state until a function needs to peek inside.

Idris-dev - A Dependently Typed Functional Programming Language

  •    Haskell

Idris ( is a general-purpose functional programming language with dependent types. This repository represents the latest development version of the language, and may contain bugs that are being actively worked on. For those who wish to use a more stable version of Idris please consider installing the latest version that has been released on Hackage. Installation instructions for various platforms can be found on the Idris Wiki.

gocaml - :camel: Practical statically typed functional programming language implementation with Go and LLVM

  •    Go

GoCaml is subset of OCaml in Go based on MinCaml using LLVM. GoCaml adds many features to original MinCaml. MinCaml is a minimal subset of OCaml for educational purpose. It is statically-typed and compiled into a binary. This project aims incremental compiler development for my own programming language. Type inference, closure transform, mid-level IR are implemented.

Elm - Functional Reactive Programming Language compiles to Javascript

  •    Javascript

Elm is a functional reactive programming (FRP) language that compiles to HTML, CSS, and JS. FRP is a concise and elegant way to create highly interactive applications and avoid callbacks. It aims to make web development more pleasant. Functional Reactive Programming (FRP) is a high-level way to work with interactions. It provides control flow structures for time.

gosu-lang - The Gosu programming language

  •    Gosu

Gosu is a pragmatic programming language for the JVM. It has been designed with Java developers in mind by providing a set of features that allow them to be more productive without sacrificing the benefits of static typing. Gosu is an object oriented language with a sprinkle of functional programming features. It was nominated Language of the Month in a Dr Dobb's article in 2011. You need Java JDK 1.8 and Maven 3.x to build Gosu. Set the JAVA_HOME environment variable to JDK 1.8's home.

verve-lang - A functional language for the working hacker

  •    Haskell

Verve is a functional language for the working hacker. It was designed with users that come from other language paradigms in mind (primarily object-oriented). It aims to ease the path into the functional programming world by offering a more familiar take on functional idioms, like you'd find in most modern languages. Verve has lists, classes, objects, lambdas, interfaces and more, and it tries to give them all a beginner-friendly API, but all the concepts found here have can be expressed in purely functional languages.

Shem - The compiler of the programming language Shem

  •    CoffeeScript

Shem is a new compiled-to-JS, statically typed, pure-by-default functional programming language. The semantics are based on Haskell but the language evaluates strictly in a similar way to PureScript. The syntax is S-expressions-based, allowing for a full-blown LISP-like macro system. Shem's prelude includes a full-featured, highly-polymorphic collections library backed by ImmutableJS. The language has been designed for the use within its custom built IDE, Golem available at, inspired by Bret Victor.

Idris-dev - A Dependently Typed Functional Programming Language

  •    Haskell

A Dependently Typed Functional Programming Language

SATySFi - A statically-typed, functional typesetting system

  •    OCaml

SATySFi (pronounced in the same way as the verb “satisfy” in English) is a new typesetting system with a static type system. It consists mainly of two “layers” ― the text layer and the program layer. The former is for writing documents in LaTeX-like syntax. The latter, which has ML-like syntax, is for defining functions and commands. SATySFi enables you to write documents markuped with flexible commands of your own making. In addition, its informative type error reporting will be a good help to your writing. This software is supported by IPA Mitou Project 2017 (see the abstract here).

GDevelop - :video_game: GDevelop is an open source HTML5 and native game creator requiring no coding skills

  •    C++

GDevelop is a full featured, open source game development software, allowing to create HTML5 and native games without any knowledge in a specific programming language. All the game logic is made thanks to an intuitive and powerful event based system. A pre-generated documentation of the Core library, C++ and JS game engines is available here.

monkey - Interpreter with support for class, linq, sql, net, http, fmt, json and A realtime syntax highlighting REPL

  •    Go

This project is no longer being maintained. All the contents have been moved to magpie. Monkey is a toy language interpreter, written in Go. It has C-style syntax, and is largely inspired by Ruby, Python, Perl and c# It support the normal control flow, functional programming and object oriented programming. It also has a REPL with realtime syntax highlighter.

alpaca - Functional programming inspired by ML for the Erlang VM

  •    Erlang

Alpaca is a statically typed, strict/eagerly evaluated, functional programming language for the Erlang virtual machine (BEAM). At present it relies on type inference but does provide a way to add type specifications to top-level function and value bindings. It was formerly known as ML-flavoured Erlang (MLFE). Please see the rebar3 plugin documentation for more details.

GDevelop - HTML5 and native game creator requiring no coding skills

  •    C++

GDevelop is a full featured, open source game development software, allowing to create HTML5 and native games without any knowledge in a specific programming language. All the game logic is made thanks to an intuitive and powerful event based system.

fo - An experimental language which adds functional programming features to Go.

  •    Go

Fo is an experimental language which adds functional programming features to Go. The name is short for "Functional Go". Go already supports many features that functional programmers might want: closures, first-class functions, errors as values, etc. The main feature (and in fact only feature for now) that Fo adds is type polymorphism via generics. Generics encourage functional programming techniques by making it possible to write flexible higher-order functions and type-agnostic data structures.

language-ext - C# functional language extensions - a base class library for functional programming

  •    CSharp

This library uses and abuses the features of C# 6+ to provide a functional 'Base class library', that, if you squint, can look like extensions to the language itself.language-ext is an MIT-licensed open source project. Its ongoing development is made possible thanks to the support by these awesome backers. If you'd like to join them, check out the language-ext Patreon campaign. Or if you'd just like to help support the coffee fund, that is very welcome too!.