A third way

Programming is about translating what a human wants into instructions a computer can understand. Or is it? Thinking down this path, there are two ends of a programming language spectrum. A language can be close to the computer’s perspective: imperative languages that declare data, move and store data, carry out instructions in a fixed order. At … Read moreA third way

What makes a functional programmer?

Michael O’Church has a lot to say about the functional programming community. His post, Functional Programming is a Ghetto (in the “isolated, exclusive neighborhood” sense of ghetto) contains some great descriptions of what goes through a programmer’s head after he or she learns to think in a functional style. The following is a paraphrase of … Read moreWhat makes a functional programmer?

Why Functional Matters: Your white board will never be the same

Why learn functional programming? For better design skills! The other day we designed a process to match cleared deposits with dispensations. This is how I would have white-boarded it a few years ago: Since then I’ve played around with functional programming. It encourages one to think about processing in terms of data streams: data comes … Read moreWhy Functional Matters: Your white board will never be the same

Lessons from SICP: what is iterative programming?

SICP insight of the day: iterative programming doesn’t require a for loop. Tail recursion is iterative programming. It looks very close to recursion, but the distinction is: a program is iterative if everything it needs is stored in a few state variables. In an imperative style the state is stored in mutable variables. In a … Read moreLessons from SICP: what is iterative programming?