I have been following the recent "Monad tutorial" discussion with interest, 
and even read the tutorial, which is a useful addition to the existing 
Haskell documentation. So useful in fact that it raises a question...

The whole monad mechanism seems to geared towards functions of one argument, 
plus eventually state, that get chained together. How about functions with 
several arguments?

As an example, I'll use the Maybe monad. Suppose I want to write code to 
handle experimental data, in which there might be missing values. I might 
then decide to represent measurements by data of type "Maybe Double", with 
missing values represented by "Nothing". I could then go on to define 
functions on missing values, which would return "Nothing" when their argument 
is "Nothing", and I could string these functions together via the monad 
mechanism. Fine.  But how would I handle e.g. addition of two such values? 
The result should be "Nothing" when either of its arguments is "Nothing". Is 
there any mechanism to handle that?

Konrad.

_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to