

PFCL
A small pure functional language. Functions are mathematics. Effects are plain data a host runs. Identity is the hash of the body.
Features
Properties
- Lightweight
Features
- Portable
- Command line interface
- Ad-free
- Type inference
- Interpreter
- Rust
PFCL News & Activities
Recent activities
- vickov added PFCL
vickov added PFCL as alternative to Unison Programming Language
PFCL information
What is PFCL?
PFCL is a small, pure functional language with no escape hatches and no runtime. Functions are ordinary mathematical values: given the same input, a function always returns the same output, and function bodies cannot perform side effects. Anything that touches the outside world — files, network, time, randomness — is expressed as plain data: a handler takes the current state and an incoming event and returns a new state plus a list of command records for the host to execute. The language never calls out; the host decides what "run this command" means.
Every function is identified by the SHA-256 hash of its body, not by name or file path. There is no import system, no module system, and no package manager in the conventional sense — functions are resolved from a content-addressed catalog, so a function you write today keeps the same identity forever, independent of where it lives or what it's called elsewhere. Composition happens by referencing hashes, which makes equivalence and reuse checkable rather than assumed.
PFCL is implemented as a tree-walking interpreter with an ML-style syntax and Hindley-Milner-style type inference. It's distributed on crates.io and as source on Codeberg.
PFCL is not a general-purpose application runtime or a Haskell replacement; it's the computation layer meant to sit underneath something else that provides the executor.





