archives

Generics as a Library

Generics as a Library. Oliveira, Hinze and Löh.

A generic function is a function that is defined on the structure of data types: with a single definition, we obtain a function that works for many data types. In contrast, an ad-hoc polymorphic function requires a separate implementation for each data type. Previous work by Hinze on lightweight generic programming has introduced techniques that allow the definition of generic functions directly in Haskell. A severe drawback of these approaches is that generic functions, once defined, cannot be extended with ad-hoc behaviour for new data types, precluding the design of a customizable generic programming library based on the se techniques. In this paper, we present a revised version of Hinze's Generics for the masses approach that overcomes this limitation. Using our new technique, writing a customizable generic programming library in Haskell 98 is possible.

Pushing forward the state of the generics art in Haskell 98. They also discuss the application of their technique to the expression problem.

(Thanks to Jacques Carette for pointing in this direction.)

The solution to all your troubles...

By ranking the importance of the criteria below, you can use this program to help you choose between ten of the most popular programming languages today, Java, Visual Basic, C#, JavaScript, PHP, Lisp/Scheme, C/C++, Perl, Python, or Ruby.

Take a look at the page source to see how the determination is done. Feel free to object to the weights used in the calculation.

It's a bit silly, I know, but it made me grin so I thought I'd share.

LtU turns six!

Another year gone! What a year it has been: so many new ideas, members and occasional guests it will take a year to mention them all.

This year LtU traffic grew in an unprecedented way, and at some points along the way it seemed like we may be losing our collective identity. The LtU community was never a formal organization, of course: You are a member if you consider yourself one and contribute to the community in whatever way you find appropriate. Too many people stopping by to ask one question and leaving soon after can hurt the community. I am glad to say that the LtU community proved strong enough to handle the surge in new users, and indeed managed to persuade many of the newcomers to stay as regular members. Several prominent researchers in the field began posting here occasionally, without having to be invited. It is an honour having them among us, and I will of course try to get them to guest blog when I get the chance. It is quite fun to see that most interesting questions raised about new papers are answered by the authors or their graduate students.

The cordial nature of the LtU community, even if sometimes obscured by rants and bickering, managed to prevail and keep LtU a nice place to visit even as traffic increased and the number of new members signing up daily became astonishing.

From day one I saw LtU as a community. As such it is incredibly important to me that LtU is not just informative and has members with diverse backgrounds and skills, but is also friendly and helpful. I will not mention the specific members who always go out of their way to help when others raise questions or ask for assistance. We all know who you are. In my mind you are the gold members of the LtU community.

A new Lambda-year is about to begin, and it's great to feel certain that next year is going to be as instructive and challenging as the year just ending.

Onward and upward!