On Wed, Apr 28, 2004 at 05:20:53PM -0400, Dan Sugalski wrote: : The first question is... *should* we synthesize anything at all? I'd : argue yes, but at this level I can see it going either way.
Probably, in general. It's the equivalent of a method cache. But maybe some people will want to take the space/time tradeoff. : The second question is "if we do, how do we figure which method is : closest?" : : Personally I'm of the geometric distance school here, but it can get : a bit tricky, so I'm all for discussion on it. So... let's have at : it. :) Different languages might specify different semantics. So far Perl is asking for a simple sum of all the invocant's distances rather than anything geometric, based on the notion that it should be pretty easy to tell in advance if you're likely to get a tie. As soon as you go geometric your distances are no longer guaranteed to be integral, and it becomes a little harder to mentally separate the near misses from the hits. And we've construed it as a feature to know when you're unsure... On the other hand, we did at one point speculate about giving "weights" to various derivations to specify how "bad" the warping is, where a 0 weight says the derivation is to be considered identical, and a large number says "just don't go there". And there are various kinds of constraints that carry infinite weight. But we can probably restrict these weights to integers as well. Anyway, it probably depends fundamentally on what the language believes about handling "ties". Some languages may prefer to always have a way of settling the order and never pitch a fit about something that's unclear. Larry