Articles
Foundations
-
Reading Elixir as a JS developer
Foundations
-
Factoring: rewriting an expression into an equivalent form
Foundations
-
Higher-order functions: when functions take functions
Foundations
-
Substitution: replace a name with a value
Foundations
-
Function evaluation: what a mapping does to one input
Foundations
-
Equivalence: are two expressions the same for every value?
Foundations
-
Time and monotonicity: JavaScript vs. Elixir
Foundations
-
When dates break computers: Y2K, Y2K22, and the year 2038
Foundations
-
Real numbers, and the lies programming languages tell about them
Foundations
-
What the BEAM actually is, in 5 minutes
Foundations Concurrency & the BEAM
-
Function composition, pipelines, and currying: from JavaScript closures to the Elixir pipe
Foundations
-
Recursion: the pattern that calls itself
Foundations
-
The rules of functional programming
Foundations
-
Reading Erlang as a JS developer
Foundations
-
Composition: one function's output feeding the next
Foundations
-
The role of types in programming, and why this site teaches Elixir
Foundations
-
How to trace an expression, step by step
Foundations
-
Pattern matching: the = you've been reading wrong
Foundations
-
Functional JavaScript vs. functional Elixir: where it's slow, and where it isn't
Foundations
-
Currying in JavaScript vs. Elixir: same idea, opposite decisions
Foundations
-
Metaprogramming in Elixir: code that writes code
Foundations
-
Why you'll write JavaScript before Elixir here
Foundations Learning how to learn
-
Bits have no meaning: the stored-program bargain
Foundations
-
Reading Lua as a JS developer
Foundations
Learning how to learn
-
Why you'll write JavaScript before Elixir here
Foundations Learning how to learn
Concurrency & the BEAM
-
What the BEAM actually is, in 5 minutes
Foundations Concurrency & the BEAM