> 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