RE: A question about certain language features

new topic     » goto parent     » topic index » view thread      » older message » newer message

My suggestions are just that, suggestions :)

I prefer a symbol.

Chris


Derek Parnell wrote:
> Chris,
> I see we are thinking alike here. I suggested the '$' symbol because 
> that is
> often used in regular expression syntax to mean the end-of something. 
> The
> symbol '0' could also be a coding mistake, but I would think a rare one 
> (eg.
> I miskeyed the '9'). Also, it doesn't seem to be associated with 
> "end-of",
> except maybe a count-down by NASA.
> 
>    a = foo[2..0] -- is what I keyed,
>    a = foo[2..9] -- but this is what I meant.
> -------
> Derek
> 
> 
> ----- Original Message -----
> From: <bensler at mail.com>
> To: "EUforum" <EUforum at topica.com>
> Sent: Friday, March 22, 2002 8:00 AM
> Subject: RE: A question about certain language features
> 
> 
> > Your syntax, and the form that I am suggesting are virtually identical.
> > The difference is in readability, and ease of implementation.
> > Compare:
> > foo[1..]   == foo[1..length(foo)]
> > foo[1..-1] == foo[1..length(foo)-1]
> >
> > foo[1..0]  == foo[1..length(foo)]
> > foo[1..0-1]== foo[1..length(foo)-1]
> >
> > Your implementation requires 2 checks for substitution.
> > My suggestion is to simply subtitute the literal '0' with length(foo)
> >
> > foo[1..] could just be a typo.
> > foo[1..0] is defined explicity.
> >
> > Yes, my example could be a typo also, but not as likely to happen.
> >
> > foo[1..-1] the negative could be fairly easily missed.
> > foo[1..0-1] knowing that the literal '0' is always substituted with
> > length(foo), it's easy to see the intention.
> >
> >
> > To summarize, your implementation adds two new rules, whereas my
> > suggestion only adds one.
> > The concepts are identical, but the representation is different.
> >
> >
> > Chris
> >
> > kbochert at ix.netcom.com wrote:
> > > -------Phoenix-Boundary-07081998-
> > > Content-type: text/plain; charset=ISO-8859-1
> > > Content-transfer-encoding: 8bit
> > >
> > > You wrote on 3/21/02 10:54:37 AM:
> > >
> > > >Karl,
> > > >
> > > >   Consider this syntax for shorthand slicing. Your current syntax sort
> > > >of defeats the sequence bounds checking.
> > > >
> > > >seq[1..0] -- seq[1..length(seq)]
> > > >seq[1..0-1] -- seq[1..length(seq)-1]
> > > >
> > > >seq[1..1-1] -- {} (reverse slice)
> > > >seq[1..-1] -- index [-1] out of bounds
> > > >
> > > >integer index   index=0
> > > >seq[1..index] -- {} (reverse slice)
> > > >
> > > >'O' is explicit, it cannot be implied. If it is, the original EU rules
> > > >apply.
> > > >
> > > >I haven't thouroughly looked. Does your shorthand work if it's implied
> > > >with a variable?
> > > >
> > > >
> > > >Chris
> > >
> > > I handle 'foo[2..]' by expanding it textually. I think of it
> > > as a macro.
> > >
> > > when I see the '..' followed by a ']' or '-', I insert the text
> > > 'length(foo)' directly into the input stream. (Having previously
> > > saved the 'foo').
> > > 'foo[2..]' causes the interpreter to actually see 'foo[2..length(foo)]'
> > > and 'foo[2..-(a*b)]' is seen as 'foo[2..length(foo)-(a*b)]'
> > >
> > >
> > > As a result, all the normal Euphoria processing is left intact.
> > >
> > > Thanks for the link
> > > Karl Bochert
> > >
> > >
<snip>

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu