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