i've finally got around to scanning through the Revised5 Report on the Algorithmic Language Scheme, or R5RS as it's more commonly known. Scheme is a minimalist dialect of Lisp. The Report and the language both feel particularly light and elegant to me.
Over the last several months, i've immersed myself in the world of Haskell. Haskell has an elegance of its own, but for me it's a very dense language (translation: It makes me feel stupid / exposes my stupidity). i often find that, when reading Haskell code, i really have to concentrate to get a sense of what's going on. And even then, i don't always "get it". Although i've noticed a TMTOWTDI-like attitude on the Haskell-cafe list: code posted as an implementation of a particular algorithm can elicit responses from me ranging from "Zuh?" to "Oh my, that is truly a thing of beauty!"
Of course, this can happen with many programming languages: i'm not a C programmer, but i've found the source for OpenBSD that i've looked at to be very understandable - a testament to the 'cleanness' of that code base. Still, on the basis of the (admittedly small amount of) Scheme code i've read thus far, Scheme comes across to me as quite a readable language. But maybe i just need to search the Web for Obfuscated Scheme contests, to see how bad it can get. :-)
Edited to add: Just came across this, which refers to someone "who compared programming in Lisp to studying Kabbalah, in that it does strange things to your head". Bwahaha!
Over the last several months, i've immersed myself in the world of Haskell. Haskell has an elegance of its own, but for me it's a very dense language (translation: It makes me feel stupid / exposes my stupidity). i often find that, when reading Haskell code, i really have to concentrate to get a sense of what's going on. And even then, i don't always "get it". Although i've noticed a TMTOWTDI-like attitude on the Haskell-cafe list: code posted as an implementation of a particular algorithm can elicit responses from me ranging from "Zuh?" to "Oh my, that is truly a thing of beauty!"
Of course, this can happen with many programming languages: i'm not a C programmer, but i've found the source for OpenBSD that i've looked at to be very understandable - a testament to the 'cleanness' of that code base. Still, on the basis of the (admittedly small amount of) Scheme code i've read thus far, Scheme comes across to me as quite a readable language. But maybe i just need to search the Web for Obfuscated Scheme contests, to see how bad it can get. :-)
Edited to add: Just came across this, which refers to someone "who compared programming in Lisp to studying Kabbalah, in that it does strange things to your head". Bwahaha!
no subject
Date: 2007-05-28 02:28 (UTC)Ah. Well, basically, all a monad is is an encapsulation of state (much like objects in OO languages). You can open up that state to look at the innards and mess around with them, but you only touch the innards through methods not directly as you do in OO languages. And for wonky monads like IO, you can never discard the monadic container (though you can for "easier" monads like List, Maybe, Either,...). I'm not familiar with ST specifically to know how they implement the threading on the back-end, but I'd guess the thread data is just another state (albeit more on the IO side of things than on the easy side).