
Hello all, I found some implementations of Monads in javascript, but they all do not allow capturing the intermediate results. My question is: "what is the ultimate cause for this"? In haskell the second argument to (>>=) is a function a->Mb which can be written as a lambda expression, e.g. \x->[x]. In javascript such a function would be written as function(x) {return[x]}. Did I get this right: in haskell the chain of >>= is constructed from the end? So chaining a->Mb and b->Mc gives you a->Mc, which is again suitable as a second argument to (>>=), right? So why can't I do this is javascipt? Or can I? The reason I am asking this is because I am trying to beautify callbacks. An asynchronous ajax call needs a function argument, which will be executed once the call completes. But what if I want to take the results of the first call, do something with them and pass it to a second ajax call, where I would again have to pass another function argument. I would end up with a deeply nested structure of lambdas, something like f(a,b,...function(...){ ... g(... function(...) I had some hopes that chaining functions monad-style would ease my pain. I might be on the wrong track though, feel free to tell me so. -- Martin -- Martin