An impure, mostly functional, statically type inferred programming language targeting javascript and built on stream. Superseded by Giml https://gilmi.gitlab.io/strema
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Gil Mizrahi 35f2b7b7cc fix a bug with record access on non-existing label пре 7 месеци
examples Fix pattern matching on booleans пре 7 месеци
logos logos пре 7 месеци
src fix a bug with record access on non-existing label пре 7 месеци
website mention giml пре 7 месеци
.gitignore adding dante targets пре 7 месеци
.gitlab-ci.yml Restructure the project into 3 packages пре 7 месеци
LICENSE Part 01 - define the language skeleton and codegen пре 8 месеци
Makefile Restructure the project into 3 packages пре 7 месеци
README.md mention giml пре 7 месеци
cabal.project Add instructions to build with cabal пре 7 месеци
cabal.project.freeze Add instructions to build with cabal пре 7 месеци
language-ref.org update docs for sub -> block name change пре 7 месеци
overview.org update docs for sub -> block name change пре 7 месеци
stack.yaml Restructure the project into 3 packages пре 7 месеци
stack.yaml.lock Part 01 - define the language skeleton and codegen пре 8 месеци
todo.org Adding a few more comments to the Infer module пре 7 месеци

README.md

strema

Note: See Giml for further development instead

Build status

A compiler targeting javascript for a custom type inferred programming language with first class functions, ADTs and pattern matching.

Status: WIP toy proglang

Strema logo

logos adapted from “Rad Pack – 80’s Theme” Wallpapers by Nate Wren (CC BY-NC 4.0)

This project is streamed on twitch.tv/suppipi. For more information visit the webpage.

Build and run

With Stack

> stack run -- compile --input examples/factorial.strm --output /tmp/output.js
> node /tmp/output.js # use node to run the program
120

With Cabal+GHC:

> cabal v2-update
> cabal v2-build all
> cabal v2-run stremac -- compile --input examples/factorial.strm --output /tmp/output.js
> node /tmp/output.js
120