Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^6: Using hashes for set operations...

by LanX (Canon)
on May 27, 2011 at 15:44 UTC ( #907002=note: print w/ replies, xml ) Need Help??


in reply to Re^5: Using hashes for set operations...
in thread Using hashes for set operations...

Thanks! :)

> Lastly, I have decided to have all the result hashes "look the same" in that every element value is undef--which may or may not be more efficient!

unfortunately this collides with my requirement to support all kind of sets:

From the OP

This is fundamentally wrong because keys are stringifications and any reference type will not be reproduced (just think about arrays of objects or a AoH or ...)

Cheers Rolf


Comment on Re^6: Using hashes for set operations...
Re^7: Using hashes for set operations...
by jaredor (Deacon) on May 27, 2011 at 18:04 UTC

    Ouch! You're right.

    This need to be a one-stop-shop for all data structures gets back to your informative dialog with John M. Dlugosz. However in that thread I feel your claim to focus on objects seems a bit disingenuous: If you have no equivalence method to call, then your intersections are always null. To use your imagery, elements in different sets of employees that could be twins are never identified.

    (Here I address a rebuttal that is not necessarily yours. I just like using second person in threads.)

    You then could claim that you are only interested in identity, not equivalence, and that you get identity from stringification; so non-trivial intersections are again a possibility.

    However, this claim would imply that stringification defines a bijection between objects and their hash keys.

    Ergo, hash keys are all you need! ;-)

    That being said, if you carry the values with you, then your gratification is more immediate, so despite my efforts and protests, we should just go ahead and scrap my attempts in the name of efficiency. This whole thread turns out to be a roundabout way of me agreeing to whatever it is that you and John M. Dlugosz hashed out (sic).

      However, this claim would imply that stringification defines a bijection between objects and their hash keys.

      Ergo, hash keys are all you need! ;-)

      in theory yes, practically no.

      There is no pure perl way to get the ref from the stringification, as long the relation is stored in a hash (sic).

      And yes collisions can happen, when strings and references are mixed into one set...then resulting into the need of a specialized stringification.

      Cheers Rolf

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://907002]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (11)
As of 2014-08-28 15:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (263 votes), past polls