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.


Reply via email to