Overview

A lightweight, fast, embeddable, functional scripting language.


Oba sports a dynamic, but strong type system and a terse syntax which borrows designs from Haskell, Rust, and Go.

import "system"

fn fib n = match n
  | 0 = 0
  | 1 = 1
  | n = fib(n-1) + fib(n-2)
  ;

system::print(fib(13))
  • Oba is small. The implementation can be skimmed an in afternoon.

  • Oba is functional. Oba aims to make functional programming more accessible by providing a simple, terse syntax which should feel accessible to programmers coming from imperative languages.

  • Oba is a scripting language. It has no dependencies and is suitable for writing small tools or for embedding within a larger application.


Click on the links in the sidebar to learn more.