Skip to content

FScript

Modern functional programming with the familiarity of TypeScript, minus the complexity.

Why FScript?

Purely Functional

Immutable bindings, arrow functions only, and no classes. Focus on data transformation.

Type Safe

Strong inference, tagged unions, and pattern matching inspired by the best of TypeScript and Rust.

Runtime Power

Explicit std: modules and defer for laziness. Designed for predictable execution.

Painless Tooling

Native Rust-based compiler and CLI. No complex build pipelines required.

import Array from 'std:array'
// FScript feels familiar, but stays pure.
users = [
{ name: 'Alice', active: true },
{ name: 'Bob', active: false }
]
activeNames = users
|> Array.filter((u) => u.active)
|> Array.map((u) => u.name)