Darren Duncan writes: > I believe that ... some common relational operations would be a lot > easier to express if Perl 6 had a few more operators that make them > concise.
I am prepared to believe that. But what I'm unclear on is when I'd want to perform a common relational operation. Please could you give an example of something which is useful -- that is useful as a means to some other end, not merely useful to somebody who has an interest in relational theory -- but which is currently awkward, and then give the same example again showing how much better it is with your proposed functions? > I also want to emphasize that I see this functionality being generally > useful, and that it shouldn't just be shunted off to a third-party > module. Why is being in a module being "shunted off"? You could put everything in the main namespace but that way PHP, ahem I mean madness, lies. Nicholas already pointed out that in Perl 5 C<rename> exists, as an operation on files. That shows the problem with using generic function names for quite specific operations without there being any surrounding context. Many people rarely use C<rename>, because they happen to be using Perl for things other than dealing the filesystem, but the existence of that function clobbers a useful name. Rather than fighting over it it strikes me as much more sensible to have a module for filesystem operations and another for relational operations, then users can import the functions that they actually use. Note that being in a module doesn't (necessarily) mean 'not distributed with core Perl'. > 1. join() aka natural_join(): Remember that Perl already has a C<join> function, for joining strings. Smylers