Functional Programming
No Subtyping in PureScript: Row Polymorphism Instead
PureScript has no subtyping. Data constructors are not subtypes; they are functions that build values of a single type. When you need to share structure across types, row polymorphism provides a more …
Algebraic Data Types in TypeScript
Note: the code for the TypeScript (to help you follow along) is available here: Encoding Algebraic Data Types in TypeScript code Background Recently I've been reviewing TypeScript code at work. A …
Algebraic Data Types: For the math(s) inclined
Unlock the mathematical elegance of algebraic data types (ADTs) and revolutionize your understanding of data modeling! Discover how algebraic principles can determine the cardinality of ADTs, allowing …
Thinking in Properties (and Beyond), Testing edition
Slide deck from conference talk discussing how property-based testing offers a launchpad to discover and practice thinking in properties in your software development activities to test your software …
Experience report deploying PureScript to AWS Serverless (Lambda)
In this blog post, an experienced software engineer shares their successful deployment of a pure functional serverless function to AWS using PureScript. They spent around $15 per day on API Gateway …
From Zero to Haskell: Lessons Learned (ZuriHac)
Embarking on functional programming within an established software organization is a daunting task, but this talk reveals some secrets and wisdom acquired from experience trying to build a team this …
Profunctors: The Machinery Behind Optics
Profunctors are the abstraction that makes lenses, prisms, and other optics composable. This article builds intuition for profunctors from first principles, showing how they generalize the familiar …
Functional Operations (Functional Programming at Comcast Labs Connect)
Maintaining configurations for different nodes and cloud resources in a [micro]service architecture has been an absolute nightmare in the past. The separation between CI/CD environments and production …
Functional and Reactive Operations
If we were starting greenfield development of a service or web application today we would likely employ a number of practices and design choices that are known to optimise application responsiveness, …
Put a Type On It: Idris Types as Propositions
Note from a talk I gave at Strangeloop showing how Curry-Howard can be applied to structuring types to represent logical propositions using Idris as the teaching language.