Re: - as - with automatic is rw

2004-08-21 Thread Adam D. Lopresto
On Fri, 20 Aug 2004, Larry Wall wrote:

 On Fri, Aug 20, 2004 at 10:07:02PM +0200, Juerd wrote:
 : I'm proposing
 :
 : for zip(@foos, @bars, @xyzzies) - $foo, $bar, $xyzzy { ... }
 : for %quux.kv - $key, $value { ... }

 That'd probably work on the keys only if the hash was declared to have
 object keys.  At least in Perl 5, the key is always a copy.

 : to mean
 :
 : for zip(@foos, @bars, @xyzzies) - $foo is rw, $bar is rw, $xyzzy is rw { ... }
 : for %quux.kv - $key is rw, $value is rw { ... }
 :
 : Comments, anyone?

 It's really sick, and cute, and I love it.  Unfortunately I'm not sure
 it passes the Are there already too many ways to declare a sub? test...

 It's vaguely possible I could be persuaded on the basis that

 for zip @a ¥ @b - { ($^a,$^b) = ($^b,$^a) }

 could be made to work.  But I'm still dubious.  And arguably - {...}
 means the same as sub () {...}, implying there are no arguments.


Arguably it already means that.  But if - were added, it might be a good
reason to make - {...} mean - $_ {...}, using - {...} for - $_ is rw
{...}.  A good way to remove one more special case (maybe offsetting the extra
way to declare a sub, and sweeten the whole deal).
-- 
Adam Lopresto
http://cec.wustl.edu/~adam/

Yesterday upon the stair
I met a man who wasn't there.
He wasn't there again today --
I think he's from the CIA.


Re: - as - with automatic is rw

2004-08-21 Thread Juerd
Larry Wall skribis 2004-08-20 13:31 (-0700):
 Unfortunately I'm not sure it passes the Are there already too many
 ways to declare a sub? test...

I'm not seeing it as another way. Technically, of course it is
different, but by the user, - and - will probably be seen as one
thing, with one of them being the other's specialized form.

 It's really sick

Sick would be if - were introduced to make the variable write-only ;)

 W   R
@foos  - $foo
@foos - $foo
@foos -  $foo

It would be consistent, though...


Juerd


Re: - as - with automatic is rw

2004-08-21 Thread Jonadab the Unsightly One
Juerd [EMAIL PROTECTED] writes:

 Sick would be if - were introduced to make the variable write-only ;)

Sicker still would be if - were introduced to make the variable
neither readable nor writeable.  HTH.HAND.

-- 
$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b-()}}
split//,[EMAIL PROTECTED]/ --;$\=$ ;- ();print$/



Re: - as - with automatic is rw

2004-08-20 Thread Larry Wall
On Fri, Aug 20, 2004 at 10:07:02PM +0200, Juerd wrote:
: I'm proposing
: 
: for zip(@foos, @bars, @xyzzies) - $foo, $bar, $xyzzy { ... }
: for %quux.kv - $key, $value { ... }

That'd probably work on the keys only if the hash was declared to have
object keys.  At least in Perl 5, the key is always a copy.

: to mean
: 
: for zip(@foos, @bars, @xyzzies) - $foo is rw, $bar is rw, $xyzzy is rw { ... }
: for %quux.kv - $key is rw, $value is rw { ... }
: 
: Comments, anyone?

It's really sick, and cute, and I love it.  Unfortunately I'm not sure
it passes the Are there already too many ways to declare a sub? test...

It's vaguely possible I could be persuaded on the basis that

for zip @a ¥ @b - { ($^a,$^b) = ($^b,$^a) }

could be made to work.  But I'm still dubious.  And arguably - {...}
means the same as sub () {...}, implying there are no arguments.

Larry


Re: - as - with automatic is rw

2004-08-20 Thread Matt Diephouse
On Fri, 20 Aug 2004 13:31:12 -0700, Larry Wall [EMAIL PROTECTED] wrote:
 It's vaguely possible I could be persuaded on the basis that
 
 for zip @a ¥ @b - { ($^a,$^b) = ($^b,$^a) }

Shouldn't that be:

for zip @a, @b - { ... }
  --or--
for @a ¥ @b - { ... }

?

--
matt


Re: - as - with automatic is rw

2004-08-20 Thread Larry Wall
On Fri, Aug 20, 2004 at 04:46:33PM -0400, Matt Diephouse wrote:
: On Fri, 20 Aug 2004 13:31:12 -0700, Larry Wall [EMAIL PROTECTED] wrote:
:  It's vaguely possible I could be persuaded on the basis that
:  
:  for zip @a ¥ @b - { ($^a,$^b) = ($^b,$^a) }
: 
: Shouldn't that be:
: 
: for zip @a, @b - { ... }
:   --or--
: for @a ¥ @b - { ... }
: 
: ?

Yes, a typo.  Though it's not actually clear yet whether you have to
write zips args with semicolons, which is why I partially switched
to ¥ in midthink.

Larry