ƒ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

{stdout, write} = import 'std/io.fnk'

main = fn foo:
  msg = match foo:
    'ƒink': 'little bird'
    _:      '${foo}'

  write stdout, 'Hello ${msg}!'
# Pattern matching with destructuring
classify = fn match n:
  n > 0: 'positive'
  n < 0: 'negative'
  _:  'zero'

classify 42

ƒ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.