Monads/Writer monad: Difference between revisions

Content added Content deleted
Line 671: Line 671:


proc bindWith(f: (x: float) -> float; log: string): WriterBind =
proc bindWith(f: (x: float) -> float; log: string): WriterBind =
result = (proc(a: WriterUnit): WriterUnit =
result = (a: WriterUnit) => (f(a[0), a[1] & log)
(f(a[0]), a[1] & log)
)


func doneWith(x: int): WriterBind =
func doneWith(x: int): WriterBind =