[Haskell] Mixing monadic and non-monadic functions

Sean E. Russell haskell at ser.fdns.net
Tue Mar 23 12:55:56 EST 2004


On Tuesday 23 March 2004 11:36, Graham Klyne wrote:
> I think you're a rather stuck with the "temporary variables" (which they're
> not really), but it might be possible to hide some of the untidiness in an
> auxiliary monadic function.

That seems to be the common suggestion: write my own visitors.

I'm just surprised that there isn't a more elegant mechanism for getting 
interoperability between monadic and non-monadic functions.  The current 
state of affairs just seems awkward.  

[Warning: quasi-rant]

Caveat: I'm not smart enough, and I don't know enough, to criticize Haskell, 
so please don't misconstrue my comments.  To quote Einstein: "When I'm asking 
simple questions and I'm getting simple answers, I'm talking to God."  I 
simply mistrust, and therefore question, systems where simple things are 
overly involved.

The standard explaination about why monads are so troublesome always sounds 
like an excuse to me.  We have monads, because they allow side-effects.  Ok.  
If programs that used side effects were uncommon, I'd be fine with them being 
troublesome -- but they aren't.  Maybe it is just me, but my Haskell programs 
invariably develop a need for side effects within a few tens of lines of 
code, whether IO, Maybe, or whatnot.  And I can't help but think that 
language support to make dealing with monads easier -- that is, to integrate 
monads with the rest of the language, so as to alleviate the need for 
constant lifting -- would be a Good Thing.

Hmmm.  Could I say that Haskell requires "heavy lifting"?

-- 
### SER   
### Deutsch|Esperanto|Francaise|Linux|XML|Java|Ruby|Aikido
### http://www.germane-software.com/~ser  jabber.com:ser  ICQ:83578737 
### GPG: http://www.germane-software.com/~ser/Security/ser_public.gpg
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: signature
Url : http://www.haskell.org//pipermail/haskell/attachments/20040323/54fc6ff0/attachment.bin


More information about the Haskell mailing list