develooper Front page | perl.perl6.language | Postings from September 2002

Re: Paren madness (was Re: Regex query)

Thread Previous
From:
Jonathan Scott Duff
Date:
September 24, 2002 12:09
Subject:
Re: Paren madness (was Re: Regex query)
Message ID:
20020924140855.D8624@cbi.tamucc.edu
On Tue, Sep 24, 2002 at 11:47:16AM -0700, David Whipp wrote:
> It seems that the fundamental problem is the dichotomy between
> a scalar, and a list of 1 elem. Thus, we want
> 
>   $a = 7
> 
> to DWIM, whether I mean a list, or a scalar. Seems to me that
> the best way to solve a dichotomy is to declare it to not to
> be one: a scalar *IS* a list of one element. The only thing
> that needs to go is the inappropriate casting in numeric
> context.

So you're saying that +$a == 7 is inappropriate and it should be 
+$a == 1?  (since lists in numeric context yield their length)

Or are you saying that lists in numeric context should NOT yield their
length but rather the programmer must type @a.length to get that?

> I think the
> answer is that the sigil defines the default interface
> ("skin"?) on an object. So,
> 
>   $a = 7;
>   @a = 7;
> 
> both create identical objects; but the interface to these
> objects is different. so +$a == 7, while +@a is 1.

Okay ...

> Next:
> 
>   $b = 7, 6, 5
>   @b = 7, 6, 5
> 
> Again, both create identical objects, under different
> interfaces. But now we have a problem with +$b: what should
> this mean? To be consistant with +$a (above), I would
> suggest that it simply returns the sum of its elements
> (i.e. +(1,2,3) == 6).

Makes no sense to me.

if $b and @b are identical objects then what kind of objects are they?
Are the commas list constructors?  If so, then why wouldn't +$b == 3?

	$a = 10; $b = 7,6,5;
	$c = $a + $b;		# what happens here?  Is $c == 28?

Anyway, this is most bizarre.  My little perl 5 brain can't intuit.

-Scott
-- 
Jonathan Scott Duff
duff@cbi.tamucc.edu

Thread Previous


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