archives

Ralf Lämmel: Going bananas

As most of you know so well, Banana is functional programming slang for "fold"—an application of the catamorphic recursion scheme most widely known in the higher-order list processing tradition of Bird-Meertens Formalism and the Squiggol community. Erik Meijer used to be known as the "banana man" because of his early research on the subject; he also co-authored the seminal paper with theoretical (categorical) foundations on the subject. Incidentally, the paper used the notation of so-called "banana brackets" (instead of using the plain string "foldr"), which sort of explains why we sometimes say bananas. There is no shortage of crazy paper titles on the subject, by the way: "Functional Programming with Bananas, Lenses, Envelopes, and Barbed Wire," "Bananas in Space: ...," "Dealing with large bananas," "Boxes go bananas: ...," "See more through lenses than bananas," etc.



See Ralf going bananas in his latest excellent video lecture on Channel 9:

Low res MP4
High res MP4

C

I've run out of programming languages to study

It feels like there is nothing new under the sun.

I've learned to use, implemented a few of and studied the theory of (over the course of the last two decades) HTML, SQL, C, Java, Objective-C, Prolog, Common Lisp, CLOS, J, Scheme, Ocaml, Haskell, Agda, Oz, Reversible programming, Quantum algorithms to name a few.

Now I know that I am wrong, and there are lots of original things (not equivalent to what I have already seen) out there but I haven't been able to discover them. That's why I'm posting.

So what new discoveries have you come across recently? And what gems from history might I have overlooked?