Monads/Writer monad: Difference between revisions

Content added Content deleted
(Add Nim)
Line 674: Line 674:
(f(a[0]), a[1] & log)
(f(a[0]), a[1] & log)
)
)

func doneWith(x: int): WriterBind =
(x.float, "")


var
var
Line 680: Line 683:
logHalf = ((x: float) => x/2'f).bindWith "divided by 2, "
logHalf = ((x: float) => x/2'f).bindWith "divided by 2, "


echo (5.0, "").logRoot.logAddOne.logHalf
echo 5.doneWith.logRoot.logAddOne.logHalf
</lang>
</lang>
{{out}}
{{out}}