Tag
Cargocut introduces 'nel', a tiny OCaml library of non-empty lists, and discusses a proposal to encode list reversal in the type so that intermediate reversed-construction invariants are tracked explicitly.
RacketCon 2026, the sixteenth gathering for the Racket programming language community, is happening Saturday with a live stream and talks on notation, type inference in Typed Racket, and low-level language-oriented programming via the new Pille language.
A blog article clarifying the differences and similarities between module systems (OCaml) and typeclasses (Haskell, Rust), arguing that typeclasses primarily serve ad-hoc polymorphism while modules serve modular abstraction, and that each can partially emulate the other at a cost.
ind-igo/bend-frontend is a composable frontend for Bend 2 written in Bend that type-checks programs once and emits a typed, serializable Core.Program for any backend, including EVM (via bend-evm) and WASM.
Edward Kmett's Turbo Haskell (THC) compiles GHC Core via Truffle/GraalVM, supporting full prim-ops, JIT and AOT via Native Image, polyglot FFI to Python/Ruby/R/JavaScript, SIMD, green threading on Project Loom, and even compiling GHC itself.
A deep-dive blog post (reposted with permission from Alexis King's 2019 explanation) clarifying that foldl and foldr differ in associativity rather than traversal direction, and exploring how this plays out differently in strict versus lazy evaluation.
The article describes how a developer built a functional programming language in C, starting from a data structures assignment to evaluate arithmetic expressions, and implementing features like closures, a garbage collector, and a REPL.
Eli Bendersky applies the 'Parse, don't validate' pattern to Rust, demonstrating how to use type systems to enforce invariants and improve code clarity with examples from the standard library and crates like nonempty.
The article expands Gary Bernhardt's 'Functional Core, Imperative Shell' architecture to 'Deterministic Core, Non-Deterministic Shell,' highlighting determinism over pure functionalism for better testability and broader applicability in software systems.
Lambda MicroEgg is a tool implementing an e-graph with support for well-scoped alpha-aware binders and higher-order Miller patterns for program synthesis and rewriting.
This article explains why mutable data types cannot be subtypes of immutable types in programming languages, using the Liskov substitution principle and pairs as an example to highlight type safety and immutability contracts.
This post discusses methods to conduct Dijkstra's algorithm directly on algebraic graph representations without converting to adjacency maps, leveraging graph compression techniques.
The article explores how to embed functions in pure data using defunctionalization, discussing typeclasses in Haskell and a toy WASM backend example.
This article provides a scan of Peter Henderson's 1982 paper on purely functional operating systems, which was previously hard to access online.
The article explains how to manage complex application state in growing reactive UIs by using building blocks like Datastar, glimmer, Domino, and Ebb to handle data flows, business logic, and external integrations.
This article provides a guide to lazy evaluation in Haskell, explaining its mechanics, benefits for modular code, and methods for analyzing space and time usage.
This blog post explains how to enable reproducible deployments of MirageOS unikernels using Nix, integrating functional programming for safer and more efficient network applications like DNS servers.
The article demonstrates a trick to implement dependent if-expressions without dependent types using Church encoding and rebindable syntax in Haskell, proving it works with simple type inference.
This article explores implementing the 'tagless final' pattern in Rust with GADT-style enums, showing how the compiler can erase abstractions for zero-cost performance.
The article explores symmetries in boolean scans within array languages like APL, discussing optimizations for folds and scans through functional equations and algorithmic insights.