> Mailing-List: contact [EMAIL PROTECTED]; run by ezmlm
> Cc: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
> From: Piers Cawley <[EMAIL PROTECTED]>
> Date: Wed, 30 Oct 2002 18:59:15 +0000
> X-SMTPD: qpsmtpd/0.12, http://develooper.com/code/qpsmtpd/
> 
> Dave Storrs <[EMAIL PROTECTED]> writes:
> 
> > In the "Re: Wh<[ie]>ther Infix Superposition ops" thread
> >
> > On Wed, 30 Oct 2002, Piers Cawley wrote:
> >
> >> But given a decent Collection hierarchy:
> >>
> >>     my $seen = Set.new($start,$finish);
> >>
> >>     for <> -> $next {
> >>         print $next unless $next =~ $seen;
> >>         $seen.insert($next);
> >>     }
> >
> > Just a thought...are sets (or other Collection types) something that we
> > use often enough that they would deserve to be in the core language?  I
> > know I've used hashes as no-repeats-allowed sets many times, so clearly
> > they are commonly useful.  On the other hand, since this can be done,
> > maybe there is no need to implement a new core feature for them.
> >
> > I suspect the answer is "no, we don't need them" but I just thought I'd
> > ask; I'm curious about the design reasons either way.
> 
> Personally, I'd love to see something like the whole Smalltalk
> Collection hierarchy available complete with Bags, Sets, Dictionaries,
> OrderedCollections and the whole deal. I note, for instance that
> Christian Lemburg has implemented Set::Object, and it's substantially
> faster than a hash based implementation for insertion, and marginally
> faster for lookup. See
> http://search.cpan.org/author/JLLEROY/Set-Object-1.02/Object.pm#PERFORMANCE
> for Christian's numbers. I would hope that we could see other
> performance gains for other Collection classes. 

Well, to generalize the notion of "array" and "hash" wouldn't be that
difficult.  Change them, respectively, to "ordered" and "unordered".

I wonder if @things should have a more general interface than
numerical indices.  I've wanted linked lists in perl, and every time I
do a splice on an array I cringe for speed reasons.

Heh, we could use my "linked array" implementation.  Or not.

But I think we need a concept of iterators in the core.  I like the
C++ STL because of it's generalization of iterators.  I think it's
worth repeating, <rant>except the part about declaring them taking a
page of code:

    list<actor::id_type>::const_reverse_iterator = idlist.rbegin();

That's more hideous than anything Perl haters yell about.  At least
perl does something. I mean, in that many Perl characters people have
made computer algebra systems ;) 
</rant>

So lets see, <...> derefrences and increments its prisoner.  Perhaps
just ++ing and --ing would work.  Of course, I'd hate to use <$iter-->
for a derefrence without an increment.  Or, yes, of course!  Would it
be possible to overload prefix:$ ?  Then we could derefrence with the
derefrence operator $$iter.

Um, yeah, my mind is kinda scattered. Just a little bit.

Luke

Reply via email to