On Tue, May 17, 2005 at 10:10:22PM +0800, Autrijus Tang wrote:
: On Tue, May 17, 2005 at 07:00:23AM -0700, Larry Wall wrote:
: > On Tue, May 17, 2005 at 01:50:48PM +0000, Luke Palmer wrote:
: > : Is that still the case?  I don't recall us getting rid of it, but it
: > : doesn't seem to be documented in the AES.
: > 
: > We didn't get rid of it.
: 
: So does it mean that a "3-story" multisub with two colons will
: always win against one with one colon?
: 
:     multi sub foo (Any $x: Str $y: Str $z, Str $w) { 1 }
:     multi sub foo (Str $x, Str $y: Str $z, Str $w) { 2 }
: 
:     say foo("x", "y", "z", "w"); # 1

It does seem that the signature that provides more information should
be "rewarded" for that somehow.  Maybe it's most useful if non-invocant
args (or non-invocant-YET args, in this case) are just considered to
be at "Any" distance when matched against "real" invocants.  But we
also have to consider that any violated hard constraint anywhere in
the signature can disqualify the entrant entirely.

: Is the final level ($z and $w) participating in the MMD at all
: as tiebreakers?  Luke mentioned that in all levels but the final
: one, Manhattan distance (sum of inheritance deltas of each invs
: to the expected types) is used, but on the final level, leftmost
: tiebreaking is used.  Is that the case?  If yes, why? :)

I don't recall ever saying anything like that, so that part of it
is presumably speculative on Luke's part.  I can't say I like it.

Larry

Reply via email to