On 8/14/06, Smylers wrote: >David Green writes: >Thanks for that. In summary, if I've understood you correctly, it's that: > > =:= two aliases to the same actual variable > === one variable contains a copy of the other's actual contents > eqv both contain contents which represent the same thing but may have > come from different sources > >And that being true at one level implies being true for the above >levels. Yes? Right. (Where the ordering for "above" means =:= implies ===, and === implies eqv, but not in the other direction, of course.) > > === >> Example: Suppose I have some employee objects, and I employ two John >> Smiths. They have the same name, work in the same department, and by >> stunning coincidence everything my class knows about them just >> happens to be the same. > >Except that they wouldn't. Because each one would have a separate >payroll number, or some artificial thing invented just for the sake >of being different. So this example doesn't sound plausible to me. Well, I didn't say it was a *good* payroll system! OK, it's a silly contrived example; maybe my objects should have represented the reticulated flanges I have in stock, since one piece of inventory is the same as any other. Except I wouldn't really create an object for each one, I'd just have a single group-object that contained a $num_available counter.... (Anyone cleverer than I should feel free to jump in with a better example.) >So I now understand what this operator does. But I'm still >struggling to fathom where I would ever have a use for it. Maybe you wouldn't -- eqv is what most of us will use most of the time, I expect (being the ordinary everyday parallel to == and eq). But since it is possible to use variables both by value and by reference, there still needs to be a way to work with and compare both of them when you want to do fancy advanced stuff. -DavidThread Previous | Thread Next