develooper Front page | perl.perl5.porters | Postings from May 2013

Re: Proposal: initial type annotation in SV

Thread Previous | Thread Next
From:
Dave Mitchell
Date:
May 6, 2013 10:33
Subject:
Re: Proposal: initial type annotation in SV
Message ID:
20130506103255.GM2204@iabyn.com
On Mon, May 06, 2013 at 12:13:28PM +0200, demerphq wrote:
> On 6 May 2013 12:02, Dave Mitchell <davem@iabyn.com> wrote:
> > On Sun, May 05, 2013 at 11:45:25PM +0200, Sébastien Aperghis-Tramoni wrote:
> >> So, here is a proposal to try making this situation a bit better:
> >> annotate the SV to record the initial (or canonical) type of the the
> >> value, that is the type of the value that was last affected to the SV.
> >
> > But I don't think that necessarily solves the problem. Consider:
> >
> >     while (<DATA>) {
> >         chomp;
> >         my ($x,$y) = split / /, $_;
> >         my $z = sqrt($x*$x + $y*$y);
> >         ... serialise $x, $y, $z;
> >     }
> >     __DATA__
> >     0.123 1.234
> >     ...
> >
> > should $x, $y be serialised as strings or floats? I think the desire of
> > the programmer would be for them to be floats, but the canonical form is
> > string. In other words, the initial type still doesn't necessarily DWIM,
> > and its still up to the programmer to manually ensure the output is as
> > desired.
> 
> Personally i think most serialization module authors would consider
> the canonical form to be the string, not the NV.
> 
> Consider what should happen if the data line was
> 
> __DATA__
> 0.123x 0.1234x

Yes, but my point is that serialization modules will often not do what the
user really intended, and using the canonical type doesn't fix that: it
just shuffles around the cases when it does and doesn't DWIM.

I think if it's important that something gets serialised in a particular
format, then in some way the programmer needs to tell the serialiser what
that format should be.

-- 
The optimist believes that he lives in the best of all possible worlds.
As does the pessimist.

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About