Hi Ben,<div><br></div><div>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.</div><div><br></div><div><a href="https://ocharles.org.uk/blog/posts/2014-12-09-recursive-do.html">https://ocharles.org.uk/blog/posts/2014-12-09-recursive-do.html</a></div><div><a href="https://downloads.haskell.org/~ghc/7.8.1/docs/html/users_guide/syntax-extns.html#recursive-do-notation">https://downloads.haskell.org/~ghc/7.8.1/docs/html/users_guide/syntax-extns.html#recursive-do-notation</a><br><br><div class="gmail_quote"><div dir="ltr">בתאריך יום ב׳, 15 בינו׳ 2018, 5:53, מאת Sergiu Ivanov <<a href="mailto:sivanov@colimite.fr" target="_blank">sivanov@colimite.fr</a>>:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
Thus quoth PY on Mon Jan 15 2018 at 09:08 (+0100):<br>
><br>
> But there is another good choice: *Mercury*. It supports (sure,<br>
> because it's declarative language and is based on Prolog) special<br>
> notations for computations:<br>
<br>
If you prefer a more Haskellish syntax, you may also want to look at<br>
Curry :<br>
<br>
<a href="http://www-ps.informatik.uni-kiel.de/currywiki/" rel="noreferrer" target="_blank">http://www-ps.informatik.uni-kiel.de/currywiki/</a><br>
<br>
Curry has a built-in function called "choice" which allows<br>
"non-deterministic, set-valued" functions.<br>
<br>
Now, whichever tool you use, you are probably going to wind up with<br>
monads or with monads in disguise, as Olaf points out. (And sometimes<br>
disguise may be quite important.)<br>
<br>
--<br>
Sergiu<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div></div>