Flutterby™! : Two coding links

Next unread comment / Catchup all unread comments User Account Info | Logout | XML/Pilot/etc versions | Long version (with comments) | Weblog archives | Site Map | | Browse Topics

Two coding links

2008-10-20 12:22:37.335827+00 by Dan Lyke 1 comments

Let's build an MP3 decoder, stepping through the MP3 decoding processes a bit at a time, with source code. Via Brainwagon.

Learn You a Haskell for Great Good! I don't understand Haskell, I'm not sure when I'd use it, it also looks like the absolute antithesis of objects, which I've found to be very useful, but I suppose that's a reason I should learn a little bit more about it.

[ related topics: Music Weblogs Open Source Software Engineering ]

comments in ascending chronological order (reverse):

#Comment Re: made: 2008-10-20 17:55:06.376921+00 by: spc476

I think the thing about Haskell is that it's functional, which means, every function is side-effect free and you get functional composition (I also think it has lazy evaluation). I've never played around with it, but I have played around with Erlang, and ... functional languages require a different mindset, that's for sure. No loops (so you best feel comfortable with tail recursion), variables are single assignment (so you best feel comfortable with tail recursion) and you don't really use 'if' statements (conditionals are tested against a pattern).

Another thing about Haskell, because of it's functional nature, I/O isn't allowed, since it causes side effects. To get around this, Haskell has "monads," which nobody seems to really understand, but act as a type of "world state that can change but don't look too hard because it's not pure" thing.