Yuval~ On 9/22/05, Yuval Kogman <[EMAIL PROTECTED]> wrote: > On Thu, Sep 22, 2005 at 08:20:42 +1000, Damian Conway wrote: > > Ingo Blechschmidt asked: > > > > > my $pair = (a => 42); > > > say ~$pair; # "a\t42"? "a\t42\n"? "a 42"? > > > > Not yet specified but I believe it should be "42" (i.e. stringifies to > > value). > > > > Note that S02 does specify that pairs *interpolate* to key-tab-val-newline, > > so you can still get "a\t42\n" by writing "$pair" instead. > > Can we override &circumfix:<" ">? > > Seriously though, this is too much dichotomy between correctness and > ease of use. > > A pair is not it's value, it is a pair, and should be consistently > handled as such when e.g. stringifying. > > The reasons for this claim are: > > * Coercion to a string creates something interpolatable. > Introducing another type or context or metaphor for string > handling is counter intuitive and surprising. > > * We have powerful facilities for interpolation and > stringification that don't have to be hidden behind operator > overloading: > > "this is my special pair: $pair"; > "otherwise: $pair.key -> $pair.value"; > my multi &prefix:<~> (Pair $p) { > "key: $p.key, value: $key.value"; > } > "not like the first interpolation: $pair"; > $pair.as(...); > > These examples are flexible, explicit and stable in their > behavior. They are good enough as they are and don't need to be > "improved" by adding flexibility in something that is almost a > special case. > > * This adds complexity without much benefit. It heaps up the core > with a special case that people will have to look out for later, > and it hinders the usability of higher order functions by making > it harder for them to accept the stringiciation operator, for > instance. > > This lessens Perl 6 stability and cleanliness into something > resembling Perl 5 with more builtin data types and operations
Well said! I completely agree that string interpolation should be handled exactly the same as stringification. I would like C< ("foo is $foo of course") eq ("foo is " ~ $foo ~ " of course") > at all times. Matt -- "Computer Science is merely the post-Turing Decline of Formal Systems Theory." -Stan Kelly-Bootle, The Devil's DP Dictionary