This repository has been archived by the owner. It is now read-only.
Small functional language that compiles to JavaScript.
Clone or download
puffnfresh Merge pull request #203 from jameshfisher/empty-file-treated-as-missing
Empty file should not be treated as missing
Latest commit fa63f3b Dec 22, 2013

Roy Build Status

Roy is a small functional language that compiles to JavaScript. It has a few main features:

  • Damas-Hindley-Milner type inference
  • Whitespace significant syntax
  • Simple tagged unions
  • Pattern matching
  • Structural typing
  • Monad syntax
  • Not-horrible JS output


To compile:

make deps

To enter a REPL:


To compile and run a .roy file:

./roy -r examples/helloworld.roy

To compile a .roy file to .js:

./roy examples/helloworld.roy
cat examples/helloworld.js


Input (test.roy):

let addTwo n =
    n + 2

console.log (addTwo 40)

Output (test.js):

var addTwo = function(n) {
    return n + 2;

Calling addTwo "test" will result in a compile-time error (addTwo can only take a Number).

See the examples directory for more.



Editor Support