An open API service indexing awesome lists of open source software.

https://github.com/prakhar1989/jsjs

A strongly typed language for the web!
https://github.com/prakhar1989/jsjs

compilers ocaml programming-language typed-language

Last synced: 5 months ago
JSON representation

A strongly typed language for the web!

Awesome Lists containing this project

README

          

# ![img](logo.png)

> A strongly typed language for the web.

##### Syntax
```scala
val gcd = /\(a, b) => {
if a == b then a
else {
if a > b
then gcd((a - b), b)
else gcd((b - a), a);
};
};

print_num(gcd(12, 8));

// support for optional types
val pow = /\(base, exp) => {
val aux = /\(accum, e): num => {
if (e == 1) then accum
else aux (accum * base, e - 1);
};
aux(base, exp);
};

val chess_squares = pow(8, 2);

print_string("Total number of squares on a chessboard: ");
print_num(chess_squares);
```
#### Install
1. Install ocaml
- For mac, using homebrew: `brew install ocaml ocamlbuild opam`
2. Configure opam enviroment: `opam init`
3. Install dependencies: `opam install ocamlfind core menhir`

#### Build
```shell
$ make clean
$ make
```

#### Compile
```shell
$ ./jsjs.out examples/list.jsjs
$ node out.js
```

#### Test
```shell
$ make test
$ make run-test
```