Hi Ben, Not sure I understand exactly if this what you want, but if the problem is recursion within monads you might want to take a look at MonadFix or recursive do notation. If I understood more about how they worked I'd give an example, but I don't; I just know they're related to recursion in monads. https://ocharles.org.uk/blog/posts/2014-12-09-recursive-do.html https://downloads.haskell.org/~ghc/7.8.1/docs/html/users_guide/syntax-extns.... בתאריך יום ב׳, 15 בינו׳ 2018, 5:53, מאת Sergiu Ivanov <sivanov@colimite.fr
:
Hello,
Thus quoth PY on Mon Jan 15 2018 at 09:08 (+0100):
But there is another good choice: *Mercury*. It supports (sure, because it's declarative language and is based on Prolog) special notations for computations:
If you prefer a more Haskellish syntax, you may also want to look at Curry :
http://www-ps.informatik.uni-kiel.de/currywiki/
Curry has a built-in function called "choice" which allows "non-deterministic, set-valued" functions.
Now, whichever tool you use, you are probably going to wind up with monads or with monads in disguise, as Olaf points out. (And sometimes disguise may be quite important.)
-- Sergiu _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.