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

Reply via email to