home mail me! RSS (2.0) feed

Metamagical constructs - from a C perspective

It just struck me how magical certain constructs and idioms must feel like for a “hard core” C developer when entering more abstract and/or functional and/or dynamically bound settings. It is also interesting how many - most? - people living daily in this more “modern” (I should use the word Indirect) world of tools and […]

The Virtues of Laziness

NOTE this post is borrowed from my old blog, with permission.
One of the greatest virtues of programmers is that we are lazy. Regularly this means that we do not want to spend a lot of time and/or energy in doing stuff that bore us.
We should be lazy in that common-sensical way, but we should also […]

Erlang - the best or worst of two worlds?

A friend of mine has become an Erlang aficionado lately, and has - deliberately or not - pulled me into Erlang development I had not touched Erlang in a long time but always knew there was something about it that bothered me some twelve years ago. I forgot what, but now remember.
This post […]

Algebraic + abstract = true?

I had this idea a few weeks ago, of merging the syntactical features of algebraic data types with the implementation freedom of abstract data types. Coming to think about it, I had this idea in 1988, when I created an equational "mathematics" system on top of Prolog.
Most people having dealt with declarative languages have encountered [...]

Algebraic data types - a very brief introduction

An algebraic data type is a type defined via constructors that can subsequently – often in a functional language setting – be used in pattern matching. The typical example is (using Haskell syntax):
PLAIN TEXT
HASKELL:

data IntStack = Empty | Cons Int IntStack

One can view the type constructors (Cons and Empty above) as regular functions acting on [...]