From: schneik@... Date: 2000-09-28T06:25:35+09:00 Subject: [ruby-talk:5161] Re: Types and === Hi, # > Hal writes: # > # > # Well, Aleksi, # > # # > # You and Conrad are certainly following the # > # Principle of Greatest Surprise. # > # > I'm have no idea how you drew that connection in my case, especially # since # > both of you omitted to quote, mention, or summarize most everything of # > relevance in my original note, and both of you seemed to miss its main # > point. # > # # Sorry, Conrad, I probably did miss its main point. Your list of # relations was so unusual and exhaustive that I assumed it was some # kind of joke. # OK, let me ask this: Are you giving examples of possible uses for # === that are not commutative? Yes; to quote myself | Because many of the world's common prepositional and similarity | relations (if you are going to include them in the "===" realm) just | don't work that way in general (special cases notwithstanding); hence | my original question ... | But here is a still more general question: why would you want to | preclude "===" from potentially being *any* suitable 2-place predicate | method whatsoever? In other words.... AFAIK, the principal use/purpose of "===" is "case equality" for case statements. (IMHO this is an unfortunately somewhat over-specialized name for a more general concept--I would have preferred something more generic or more generalized such as "case matching".) Since there are so many sorts of relations that are not symmetric with respect to swapping their arguments that people might quite reasonably want to use in case statements, then unless I am missing something else here, I don't see how precluding the usage of such methods wouldn't eventually become a very onerous restriction. Conrad Schneiker (This note is unofficial and subject to improvement without notice.)