Like mapM, but run all the actions in parallel threads, collecting up the results and returning them all. Does not return until all actions finish.
Modulemonad-loops-0.4.3Haskell98
Control.Monad.Loops
A collection of loop operators for use in monads (mostly in stateful ones).
There is a general naming pattern for many of these: Functions with names ending in _ discard the results of the loop body as in the standard Prelude mapM functions.
Functions with names ending in ' collect their results into MonadPlus containers. Note that any short-circuit effect that those types' MonadPlus instances may provide in a lazy context (such as the instance for Maybe) will _not_ cause execution to short-circuit in these loops.
Functions with names ending in neither of those will generally return just plain old lists.
- 47 values
- Packagemonad-loops-0.4.3
- Exports47
- LanguageHaskell98
- LicenceLicenseRef-PublicDomain
- SourceLoops.hs
like forkMapM but without bothering to keep the return values
like forkMapM_ but not even bothering to track success or failure of the child threads. Still waits for them all though.
Execute an action repeatedly as long as the given boolean expression returns True. The condition is evaluated before the loop body. Collects the results into a list.
Execute an action repeatedly as long as the given boolean expression returns True. The condition is evaluated before the loop body. Collects the results into an arbitrary MonadPlus value.
Execute an action repeatedly as long as the given boolean expression returns True. The condition is evaluated before the loop body. Discards results.
Execute an action repeatedly until its result fails to satisfy a predicate, and return that result (discarding all others).
Execute an action repeatedly until its result satisfies a predicate, and return that result (discarding all others).
Execute an action forever, feeding the result of each execution as the input to the next.
Execute an action repeatedly until the condition expression returns True. The condition is evaluated after the loop body. Collects results into a list. Parameters are arranged for infix usage. eg. do {...} untilM_ ...
Execute an action repeatedly until the condition expression returns True.
The condition is evaluated after the loop body. Collects results into a
MonadPlus value.
Parameters are arranged for infix usage. eg. do {...} untilM_ ...
Execute an action repeatedly until the condition expression returns True. The condition is evaluated after the loop body. Discards results. Parameters are arranged for infix usage. eg. do {...} untilM_ ...
Analogue of (until)
Yields the result of applying f until p holds.
As long as the supplied Maybe expression returns "Just _", the loop
body will be called and passed the value contained in the Just. Results
are collected into a list.
As long as the supplied Maybe expression returns "Just _", the loop
body will be called and passed the value contained in the Just. Results
are collected into an arbitrary MonadPlus container.
As long as the supplied Maybe expression returns "Just _", the loop
body will be called and passed the value contained in the Just. Results
are discarded.
Run the supplied Maybe computation repeatedly until it returns a
value. Returns that value.
The supplied Maybe expression will be repeatedly called until it
returns Nothing. All values returned are collected into a list.
The supplied Maybe expression will be repeatedly called until it
returns Nothing. All values returned are discarded.
Repeatedly evaluates the second argument until the value satisfies the given predicate, and returns a list of all values that satisfied the predicate. Discards the final one (which failed the predicate).
Repeatedly evaluates the second argument until the value satisfies the given predicate, and returns a MonadPlus collection of all values that satisfied the predicate. Discards the final one (which failed the predicate).
See unfoldr. This is a monad-friendly version of that.
See unfoldr. This is a monad-friendly version of that, with a twist. Rather than returning a list, it returns any MonadPlus type of your choice.
Compose a list of monadic actions into one action. Composes using (>=>) - that is, the output of each action is fed to the input of the one after it in the list.
short-circuit and for values of type Monad m => m Bool
short-circuit or for values of type Monad m => m Bool
short-circuit any with a list of "monadic predicates". Tests the value presented against each predicate in turn until one passes, then returns True without any further processing. If none passes, returns False.
short-circuit all with a list of "monadic predicates". Tests the value presented against each predicate in turn until one fails, then returns False. if none fail, returns True.
short-circuit any with a "monadic predicate".
short-circuit all with a "monadic predicate".
Monadic takeWhile.
Monadic dropWhile.
like dropWhileM but trims both ends of the list.
return the first value from a list, if any, satisfying the given predicate.