A good example for overloading are set operations, because the logic is "compatible".
- X * Y intersection
- X + Y join
- X - Y difference
- - X complement
I don't see how the logic is compatible, unary - as complement means X - Y is different from X + (-Y). And there's just no relation between * and + anymore. At least with + for concatenation (which I already don't like much), you can have STRING * 3 to be equivalent to STRING + STRING + STRING.
And actually now that I think of it, the best operator to overload to append to a file is .=. With the dot you have both the append and string semantic, and the = makes it ok for the operation to have an effect on the left operand. And it makes chaining more consistent:
file("path") .= "First string" . "Second string";
In reply to Re^8: Split tab-separated file into separate files, based on column name ( Operator overloading )
by Eily
in thread Split tab-separated file into separate files, based on column name
by Anonymous Monk
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |