Working with monad-par
The monad-par
library provides a way to specify the job in both pure as well as IO contexts. The monad-par
library implements a work-stealing scheduler. Using monad-par
, we can define a future value, that is, a context where a value is expected to be evaluated sometime in future, and specify the point where to fork the computation. The monad-par
library takes care of scheduling these computation on threads and fulfilling the context for where the computed value should be kept.
In this recipe, we compute fibonacci number using two methods, first with a naive recursive method, and second implementing the same recursion using the monad-par
library.
How to do it...
- Create a new project called
working-with-monad-par
with thesimple
stack template:
stack new working-with-monad-par simple
- Add a dependency on the
monad-par
library in thebuild-depends
sub-section of theexecutable
section. Also add-threaded -fprof-auto -rtsopts -eventlog
to theghc-options
subsection...