14 articles
← Back to all tagsA monoid is an algebraic structure of disarming simplicity: a set equipped with an associative binary operation and a neutral element. That's all.
The boundary between code and data is far more porous than commonly thought.
Algebraic type theory offers us an elegant correspondence between data structures and elementary arithmetic.
Algebraic data types (ADTs) form the foundation of modeling in typed functional languages, and their influence now extends far beyond.
A total function is one that terminates and produces a valid value for every input in its declared domain.
An all-too-often ignored truth runs through discussions about testing practices: you cannot test what hasn't been designed to be tested.
One of the most persistent misconceptions about Test-Driven Development is reducing it to a technique for writing tests.
Property-based testing (PBT), popularized by QuickCheck in Haskell in the late 1990s, reverses the traditional approach to unit testing.
Raw data has no intrinsic meaning: it's merely a sequence of 1s and 0s, an inert structure, an arrangement of symbols. It's interpretation that confers meaning.
Embedded domain-specific languages (embedded DSLs) allow building mini-languages within a host language, inheriting its syntax, type system, and tooling.
A design system, in its essence, is much more than a library of reusable components: it's a domain-specific language (DSL) for expressing a graphic identity.
Partial application and currying transform a function with multiple arguments into a chain of single-argument functions.
Greg Young, in his foundational documents on CQRS, introduces an enlightening distinction between two interface styles.
A persistent confusion in the industry consists of mixing three fundamentally independent dimensions: