On 04/11/02 17:52 -0800, [EMAIL PROTECTED] wrote:
> [Note to all: yes, this is me, despite the weirdities of the quoting
> and headers.  This is how it looks when I using mutt out of the box,
> because I haven't yet customized it like I have pine.  But I do like
> being able to see my own Unicode characters, not to mention everyone
> else's.  If you don't believe this is me, well, I'll just tell you that
> I live on a tropical island near Antarctica, my social security number
> is 987-65-4321, and my mother's maiden name was the same as my maternal
> grandfather's maiden name.  Or something like that...  --Ed]

Mutt?

I'm using mutt and I still haven't had the privledge of correctly viewing one
of these unicode characters yet. I'm gonna be really mad if you say you're
also using an OS X terminal. I suspect that it's my horrific OS X termcap
that's misbehaving here.

Aargh!

Brian

> 
> On Mon, Nov 04, 2002 at 02:25:08PM -0800, Michael Lazzaro wrote:
> > On Monday, November 4, 2002, at 11:58  AM, Larry Wall wrote:
> > >You know, separate streams in a for loop are not going to be that
> > >common in practic, so maybe we should look around a little harder for
> > >a supercomma that isn't a semicolon.  Now *that* would be a big step
> > >in reducing ambiguity...
> > 
> > Or more than one type of supercomma, e.g:
> > 
> >    for @x I @y I @z -> $x I $y I $z { ... }
> > 
> > to mean:
> >    for @x ; @y ; @z -> $x ; $y ; $z { ... }
> 
> That almost works visually.
> 
> > - vs -
> > 
> >    for @x § @y § @z -> $x § $y § $z { ... }
> > 
> > to mean:
> > 
> >    for @x -> $x {
> >      for @y -> $y {
> >        for @z -> $z {
> >          ...
> >        }
> >      }
> >    }
> > 
> > ;-)
> 
> Glad you put the smiley.  I think the latter is much clearer.
> 
> But at the moment I'm thinking there's something wrong about any
> approach that requires a special character on the signature side.
> I'm starting to think that all the convolving should be specified
> on the left.   So in this:
> 
>     for parallel(@x, @y, @z) -> $x, $y, $z { ... }
> 
> the signature specifies that we are expecting 3 scalars to the sub,
> and conveys no information as to whether they are generated in parallel
> or serially.  That's entirely specified on the left.  The natural
> processing of lists says that serial is specified like this:
> 
>     for @a, @b, @c -> $x, $y, $z { ... }
> 
> Of course, parallel() is a rotten thing to have to say unless you're
> into readability.  So we could still have some kind of parallizing
> supercomma, mabye even P (U+2225 PARALLEL TO).  But let's keep it
> out of the signature, I think.  In other words, if something like
> 
>     for @x P @y P @z -> $x, $y, $z { ... }
> 
> is to work, then
> 
>     @result = @x P @y P @z;
> 
> has to interleave @x, @y, and @z.  It's not special to the C<for>.
> In the case of C<for>, of course, the compiler should feel free to
> optimize out the actual construction of an interleaved array.
> 
> I suppose it could be argued that P is really spelled »,« or some such.
> However,
> 
>     @result = @x »,« @y »,« @z;
> 
> just doesn't read quite as well for some reason.  A slightly better
> case could be made for
> 
>     @result = @x `|| @y `|| @z;
> 
> The reason we originally munged with the signature was so that we
> could do weird things with differing numbers of streams on the left
> and the right.  But if you really want a way to take 3 from @x, then
> 3 from @y, then 3 from @z, there should be something equivalent to:
> 
>     for round_robin_by_3s(@x, @y, @z) -> $x, $y, $z { ... }
> 
> Fooling around with signature syntax for that rare case is not worth it.
> This way, the C<for> won't have to know anything about the signature other
> than that it expects 3 scalar arguments.  And Simon will be happ(y|ier)
> that we've removed an exception.
> 
> Ed, er, Larry

Reply via email to