ƒink

A functional language that compiles to WasmGC.

Read the docs View source

Expression-based

Everything is an expression. Indentation creates blocks. No statement/expression split.

Pattern matching

Destructuring and match work uniformly across literals, sequences, records, and types.

Pipes & partial application

Compose functions left-to-right with |. Use ? anywhere to create an anonymous function on the spot.

Compiles to WasmGC

The compiler targets WebAssembly GC via Binaryen. Fast, portable, and close to the metal.

A taste of ƒink

# Pipes and partial application
1..10
| filter ? % 2 == 0
| map ? * 2
| [..?]
|= even_nums
# Pattern matching with destructuring
classify = fn match n:
  n > 0: 'positive'
  n < 0: 'negative'
  else:  'zero'
# Error handling — no exceptions
fn fetch_user id:
  user = try get_user id
  Ok user.name

ƒink is under active development. The compiler pipeline is progressing — lexer, parser, and CPS transform are complete; type inference and codegen are next. Language design is stable. Follow along on GitHub.