>>13,14
I was referring to (a). It does affect things somewhat. If everything is an object, all objects, messages, functions/methods, return values will accept messages. If messages are being curried I think it muddies the waters a bit.
>>20
They're not the same, but with curried messages the second the becomes:
object func1 x func2 y func3 z. The idea is that objects are returned just like you would normally do with closures, and they begin receiving messages. (Note: func1, 2, 3 could be bound functions or they could be messages by name or what-have-you, the end result is the same, the only thing that changes is how the receiver
1 handles it (either by some internal method, or by creating a closure which applies the function to the next message.) This is what
>>24 means by:
No-one said they wanted it to be the same object that received all those messages
In fact the objective is explicitly not to send those messages to the same object.
The objective is to do this automatically
1, instead of having to build objects that do it so that you don't have to derive from a base object class. (Not that I don't mind doing that so much, assuming I can append to protos or whatever. I do believe C++ was sufficiently ruled out in the main post.)
1. Of course the receiver doesn't handle this in every instance of currying. Optimally, and especially with language support for it, it can be handled in the caller.
>>23
Aversion of side-effects is not what I had in mind by purity. "Everything is an object" is what I had in mind. I know purity is sometimes (often?) taken on its own to mean freedom from side effects, so I can see the confusion. I was referring to the purity of the concept.
I suspect that side effects can throw a wrench into things here too. On the other hand, forbidding them for the sake of argument also seems problematic to me.