On Sat, 21 Jun 2003, Faheem Mitha wrote:
>
> So multiplication is lexically valid in R even between logical
> expression and strings?
>

yes, in the sense that the lexer and parser won't choke when trying to
read the statement.

You could define a method for "*" that multiplied character strings (you
might have to work through defining Ops.character)

>
> Also, would it not be more accurate to describe an expression as a
> list of calls? Since, the [[ ]] applied to a list returns a component
> of that list, which in this case is apparently a call.
>

No, it would be less accurate (though arguably clearer). An expression is
not actually internally represented as a list of calls, just as
   list(quote(x*y), quote(a+b))
is represented as a list of calls, not an expression. Now, an expression
could have been just a list of calls (it works in LISP), but in fact it
isn't.


The problem in writing the R language definition is in trying to be both
precise and helpful (the paragraph you quoted is arguably neither, but
that's why it's a `draft').

The precise difference between an expression and a call is that an
expression is of mode "expression" and a call is of mode "call" (and a
list of calls is of mode "list"). This isn't very helpful, which is why
you get the handwaving about an expression being like a list of calls.


        -thomas

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to