How would you like to contribute to the Craft of FP exercises/solutions project?

Submitted by gour on Wed, 04/06/2005 - 7:01am.
by posting complete solutions
16% (3 votes)
by giving hints, i.e. not complete solutions
37% (7 votes)
asking for solutions only
5% (1 vote)
by asking & answering
21% (4 votes)
I am not interested for the project at all
21% (4 votes)
Total votes: 19

Trackback Spam

Submitted by jgoerzen on Wed, 03/30/2005 - 6:42am.

After spending some time deleting this morning's spam, I'd like to suggest that trackbacks be disabled on this site for now. I haven't seen any people using them legitimately, and Drupal's spam module -- while excellent in fighting comment spam -- doesn't do anything about trackback spam yet. Comments?

In the meantime, if you see spam that's been on the site for 24 hours or more, please e-mail me.

Programming Guidelines

Submitted by metaperl on Mon, 03/21/2005 - 2:42pm.

[14:38] [ibid] metaperl: there is a guideline - often forgotten in popular programming - that a subroutine be either a mutator or an inspector but not both
[14:38] [ibid] metaperl: if pop returned the element, it'd be both

Your stage of Haskell Evolution?

Submitted by shapr on Mon, 03/21/2005 - 9:08am.
49% (150 votes)
5% (15 votes)
10% (31 votes)
3% (10 votes)
1% (4 votes)
6% (20 votes)
0% (0 votes)
4% (12 votes)
1% (3 votes)
Boy Scout
3% (10 votes)
3% (8 votes)
0% (1 vote)
1% (3 votes)
1% (2 votes)
Beginning graduate
2% (6 votes)
3% (8 votes)
0% (1 vote)
3% (10 votes)
1% (3 votes)
Tenured professor
4% (11 votes)
Total votes: 308

IRC Snippets

Submitted by metaperl on Sat, 03/19/2005 - 1:24pm.

[11:19] [Cale] update x n xs = take n xs ++ x : drop (n+1) xs

Haskell puts the complexity of programming in the right place

Submitted by metaperl on Sun, 03/13/2005 - 8:39am.

Every useful programming language has an area of complexity that you must overcome to become comfortable with the language. For Perl, you need to relax your ideas about regularity and consistency and learn to read and write Perl instinctively and trust that all of the exceptions and special cases will make as much sense in Perl as in English.

Haskell is very much a "back-end" language. What I mean is that the language just sits back and waits until you have everything lined up in a clean chain of well-typed functions. It won't do anything but keep spitting back your code at your until you have your problem reduced to something expressible in expressions.

This means you spend a lot of time with the type checker. And possibly a lot of time with making sure that your IO can make it through the snake's tube of a Monad before getting into yor program.

So, Haskell can be a big turn-off to someone who needs a language which, by Haskell standards, oversteps it bounds. If you want to mix IO and your program, If you want to quickly setup a webshop and need easy CGI processing, or any of a number of things that are highly available in languages like Perl, Python, Ruby, Tcl, PHP, then Haskell seems like a huge stumbling block.

But the way that Haskell quarantines I/O. The hurdles that it puts you through are there for some very very good reasons. The more experienced you become with it's advanced features such as Monads and combinators, the more you see how to crisply and accurately separate wheat from chaff, cause from effect, and smoke from fire.

A flurry of Haskell Implementations with Cabal

Submitted by ijones on Fri, 03/11/2005 - 7:53pm.

In a flurry ... of... announcements on the Haskell mailing list today, all of the major Haskell implementations released versions of their compilers or interpreters.

The fun thing for me, is that they all come with The Haskell Cabal. This is an enabling technology for packagers and an eventual CPAN-like package database for Haskell tools. Each of today's release announcements highlighted Cabal.

This effectively adds up to the first major release of the Haskell Cabal, 0.6! Woohoo!

The point of the cabal is to make a standard way to build and install Haskell tools. Cabal packages come with a little Haskell script, Setup.lhs, which has a standard interface. The Cabal provides a library that implements this interface.

GHC 6.4 is released!

Submitted by jgoerzen on Fri, 03/11/2005 - 6:49am.

The event we've all been waiting for!

GHC 6.4 is released! Click the link for the full announcement as well as download links. There are also release notes available.

Interview with Pugs creator Autrijus Tang

Submitted by simonmar on Tue, 03/08/2005 - 4:01am.

O'Reilly Perl.Com has an interesting interview with Autrijus Tang of Pugs fame.

GHC survey announced

Submitted by simonmar on Fri, 03/04/2005 - 9:02am.

The GHC Team announced a user survey giving you the chance to comment on all aspects of GHC from your favourite features, wishlist items, to the development model.