Okay, so how about the following as a user narrative for some and many?

        many v = repeatedly execute the action v and save each obtained result 
until v fails;  at that point, *succeed* and return a list with all of the 
results that had been collected
        some v = like many v, but if v does not succeed even once then *fail* 
instead of return the empty list

Note: If v *never* fails, then at best many/some will return infinite lists, 
and at worst they will repeat your action forever. 

Cheers,
Greg

P.S.: And yes, I know that many of you will complain that these definitions are 
not mathematically precise or what not, but it is important to be able to build 
up narratives at a sufficiently high level that they explain the essentials of 
what is going on for the benefit of users who are unfamiliar with the precise 
mathematical language used to precisely define their semantics.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to