Skip to content

andrewhickman/small-lang

Repository files navigation

Small-lang

A minimal compiler using the mlsub type system

Features

Record types

let record = { field: 1 }
in record.field

Enum types

let enum = [some: 1]
in match enum with [
  some: val => val,
  none => 0,
]

Recursive functions

let cmp = import "cmp" in
let math = import "math" in

let rec fibonacci = func n =>
  if cmp.eq n 0 then 0
  else if cmp.eq n 1 then 1
  else math.add
    (fibonacci (math.sub n 1))
    (fibonacci (math.sub n 2))
in fibonacci 14

About

Minimal compiler using the mlsub type system

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published