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.