How would you like to contribute to the Craft of FP exercises/solutions project?
Trackback Spam
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
[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
- Login to post comments
Your stage of Haskell Evolution?
IRC Snippets
[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
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.
- metaperl's blog
- Login to post comments
A flurry of Haskell Implementations with Cabal
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.
- Login to post comments
GHC 6.4 is released!
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.
- Login to post comments
Interview with Pugs creator Autrijus Tang
O'Reilly Perl.Com has an interesting interview with Autrijus Tang of Pugs fame.
- Login to post comments
GHC survey announced
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.
- Login to post comments