Re: $pair[0]?
On Fri, Aug 05, 2005 at 12:27:53AM +0200, Ingo Blechschmidt wrote: : Hi, : : Andrew Shitov wrote: : say $pair[0]; # a? : : It looks like $pair is an arrayref while 'say ref $pair' tells 'Pair'. : : right, this is why I asked, IMHO it's bogus. Yes, for bare pairs, it's probably somewhat bogus. But now I'm asking myself about the use of as a Lispish '.': 'a' = 'b' = 'c' = 'd' There's something to be said for having a way of indexing into that using numeric subscripts. Certainly Lisp's extensible car/cdr notation is the wrong way to do it, but cdddr is certainly shorter than $pair.value.value.value But maybe that's worth being dehuffmanized like that... Larry
Re: $pair[0]?
On Fri, Aug 05, 2005 at 11:36:16 -0700, Larry Wall wrote: There's something to be said for having a way of indexing into that using numeric subscripts. Certainly Lisp's extensible car/cdr notation is the wrong way to do it, but cdddr is certainly shorter than $pair.value.value.value But maybe that's worth being dehuffmanized like that... Haskell has !! : sub infix:!! (Pair $x, 0) { $x.key } sub infix:!! (Pair $x, Int $index) { $x.value !! ($index - 1) } -- () Yuval Kogman [EMAIL PROTECTED] 0xEBD27418 perl hacker /\ kung foo master: /me supports the ASCII Ribbon Campaign: neeyah!!! pgpwvUOkkSv2z.pgp Description: PGP signature
Re: $pair[0]?
Seems like you left out the degenerate case for when you run out of pairs: sub infix:!! (Scalar $x, 0) { $x } On 2005-08-05 16:24, Yuval Kogman [EMAIL PROTECTED] wrote: On Fri, Aug 05, 2005 at 11:36:16 -0700, Larry Wall wrote: There's something to be said for having a way of indexing into that using numeric subscripts. Certainly Lisp's extensible car/cdr notation is the wrong way to do it, but cdddr is certainly shorter than $pair.value.value.value But maybe that's worth being dehuffmanized like that... Haskell has !! : sub infix:!! (Pair $x, 0) { $x.key } sub infix:!! (Pair $x, Int $index) { $x.value !! ($index - 1) }
Re: $pair[0]?
Hi, Luke Palmer wrote: On 8/4/05, Ingo Blechschmidt [EMAIL PROTECTED] wrote: my $pair = (a = 1); say $pair[0]; # a? say $pair[1]; # 1? I've found this in the Pugs testsuite -- is it legal? Nope. That's: say $pair.key; say $pair.value; Also: say $paira; # 1 say $pair{anything else}; # undef But we don't implicitly cast references like that. thanks for clarification, that's what I've thought, too :) --Ingo -- Linux, the choice of a GNU | The next statement is not true. generation on a dual AMD | The previous statement is true. Athlon!|