On Friday, 2 March 2012 at 10:13:17 UTC, Jonathan M Davis wrote:
If the function uses out, then you can chain the return value without losing the values which were assigned to the out arguments, but if you have a tuple, and you select one of the elements in the tuple to chain, you lose the others. The only way to get _all_ of the values in the tuple is to assign the tuple to
a variable, in which case, you can't chain at all.

- Jonathan M Davis

Sure, but due to D's syntax which doesn't distinguish in/out/ref params in a function call, this is quite confusing to read: when you read f(x,y) which is in, which is out? If D's syntax was f(x,@y) (@ to distinguish out or ref parameter), this would be easy to read, but this isn't the case.

At least with tuples you don't have this issue.

Not that I consider tuples always the good answer: for the common use case where you want to return an error code and a result, the Maybe "monad" is better..

BR,
renoX





Reply via email to