[Haskell-beginners] Help with monads (I think...)

Patrick LeBoutillier patrick.leboutillier at gmail.com
Fri Feb 20 19:30:05 EST 2009

Hi all,

I'm trying to implement the following simple Perl program in Haskell:

  my $nb_tests = 0 ;

  sub ok {
          my $bool = shift ;
          $nb_tests++ ;
          print STDOUT ($bool ? "ok" : "nok") . " $nb_tests\n" ;

  ok(0) ;
  ok(1) ;

The output is:

  nok 1
  ok 2

I'm pretty much a Haskell newbie, but I know a bit about monads (and
have been reading "Real World Haskell"), and I think I need to put the
ok function must live inside some kind of state monad. My problem is
that I also would like the ok function to perform some IO (as shown
above, print).

How is a case like this handled? Can my function live in 2 monads?

Thanks a lot,


Patrick LeBoutillier
Rosemère, Québec, Canada

More information about the Beginners mailing list