Santana on my evil ways

My son's nickname is Rama, so let me adopt it. I am a functional programmer, even when I use languages such as C. Scheme facilitated my development into a functional programmer, however, I appreciate the benefits of pure function programming at times. Yet when I use Haskell, I hear reminders of my Scheme past cast in the music of Santana. The words I hear are set to "Eval Ways": You've got to change your evil ways... Rama Before I stop respecting you. You've got to change... Rama And every word that I say, it's true. You use strange syntax and typing And offset rules You don't mutate locations You use strange do's This can't go on... Lord knows you got to change. John

On Fri, 4 Jul 2008 15:43:38 -0400, "John D. Ramsdell"
My son's nickname is Rama, so let me adopt it. I am a functional programmer, even when I use languages such as C. Scheme facilitated my development into a functional programmer, however, I appreciate the benefits of pure function programming at times. Yet when I use Haskell, I hear reminders of my Scheme past cast in the music of Santana. The words I hear are set to "Eval Ways":
You've got to change your evil ways... Rama Before I stop respecting you. You've got to change... Rama And every word that I say, it's true. You use strange syntax and typing And offset rules You don't mutate locations You use strange do's This can't go on... Lord knows you got to change.
John
Haskell poetry? Here is my Scheme -> Haskell story; since you have written your story as a poem, I have written mine, in the style of Japanese court poetry, as a poem in reply: Ode from a Haskeller to a Schemer Recursion was my curse, 'Till mapping came to fame, Parens to tail-recurse, Fade, monads are to blame. Let, let*, or letrec? They were my bar and foo. Now, monads have my neck: What shall there be to do? Recurse or iterate? The processes, too late! To map, fold, or filter: That is the question, sir. In Scheme, I threw a fit: Eval: how to write it? In Haskell, no more wait: Reactive-animate! -- by Benjamin L. Russell, July 7, 2008 (Tokyo time)

(With apologies to Queen.) Is this the RealWorld#? Is this I/O I see? Caught in a monad - No escape back to purity Open a file, it wipes out my smile to see I'm just a programmer, don't need a Ph.D I'm easy come, easy go Don't need this high brow weird monadic action, no real reaction for me, from G-HC Hey man, I just found out that it is easy to achieve using unsafeInterleave and unsafe...PerformIO but people tell me I should let those go Oh man, no-o-o I'm about to start to cry If I can't make this stuff compile tomorrow I will just carry on Nothing really matters. Too late - 'cause I got it now there are monads all around IO, State and lists abound It's easy, like those people say but my program got abstracted all away! Maybe - o o o, It's a monad too, I know Why should I use another language at all? -k -- If I haven't seen further, it is by standing in the footprints of giants
participants (3)
-
Benjamin L.Russell
-
John D. Ramsdell
-
Ketil Malde