Short-medium, [hopefully] practical, and clear articles on applying
algebraic abstractions and thinking in the context of (mostly
functional) programming.
The primary goal of
Functional Algebra
is to show fellow practitioners with mostly imperative programming
backgrounds why these techniques are worthwhile and how
to start employing them using example code in Haskell, Scala, and
[soon] Clojure.
Note: I am merely dangerous in Clojure, so this will
be a learning process for me as well. Thanks for your
patience!
Material
-
Algebraic Data Types and Structures
Discussing the differences between an algebraic data type
and and algebraic [data] structure.
-
Axiomatic Software
Coming Soon
Rethink building software in terms of building axiomatic
systems (i.e. algebras) and how this shift in mindset
might, concievably, simplify the layers in your software,
improve testability, and thus improve quality.
-
Fun with Functors
Coming Soon
Scala & Haskell examples offering intuitions to what
functors are and why they might be useful.
-
Practical Error Handling
Coming Soon
Scala & Haskell examples providing informal
introduction to how we might handle errors in functional
programming and how this differs to stack unwinding
exception handling in most mainstream imperative
languages.
-
Effective IO
Coming Soon
Scala examples that offer insight into why using the IO
monad in a language that doesn't require it might be
useful.
-
Building Useful Monoids
Coming Soon
Scala & Haskell examples that extend from the SCNA
talk I gave in Chicago (Nov 2012) on monoids to discuss
how to build real world, useful monoids and compare to
equivalent imperative code. Slides for the original
talk can be found here.
-
Introducting Applicatives
Coming Soon
Scala & Haskell examples
-
Introducing Lenses
Coming Soon
Scala & Haskell examples