Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Re: questions about reimplementing core classes
Ball, Donald A Jr (Library)
5/17/2007 10:22:00 PM
> Quick thing - I know Array is implemented in C rather than in Ruby.
> This is probably true for Hash as well. There's two points here:
> first, if you were patching Array directly, you could rewrite
> [] and it would still drop to the C implementation (if I
> understand correctly). Second, the C versions of course will
> be faster.
I doubt that simply rewriting [] (and []=) would suffice, as Hash and my
SortedHash have entirely different internal data structures, upon which
the rest of the methods would seem to depend. Note I'm almost certain
that the C-based Hash is going to destroy my SortedHash in performance,
even for small collections for which a binary search is likely to be
faster than hash access. This was more of a learning ruby exercise than
anything practical.
> > 1. I'm storing entries as struct objects, the class definition for
> > which is stored in a class constant. Good or bad practice?
> I note that
> > I get a constant redefinition warning when I reload the
> class. I could
> > easily enough use a two element array, but thought a struct
> would be
> > more efficient and be more clear.
>
> I didn't spot this in the code, but I'm in a pre-RailsConf
> packing frenzy. Off the top of my head I'd say don't do it -
> you should be able to get that information from the stored
> object itself. Just because you pop it in a hash doesn't mean
> its identity dissolves.
Er, I'm just talking about a data structure in which to put the key and
value objects. I'm curious about the merits of [key, value] v.s.
ENTRY.new(key, value) (v.s., I dunno, putting the Entry struct in a
class variable or a class instance variable).
> > 4. Should I be checking block_given? in delete_if, et. al.?
> Should I
> > be explicitly declaring a &blk argument?
>
> I hate to admit it but I have no idea what you're even
> asking. I did pp Hash.methods.sort and got neither of those.
> Are they in Enumerable?
> I totally missed that.
Hash.methods.sort wouldn't list 'em as they're not class methods,
they're instance methods. pp {}.methods.sort would list 'em. In any
case, I was going by the documentation here:
http://dev.rubycentral.com/ref/ref_c...
- donald
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Re: questions about reimplementing core classes
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password