On Fri, May 20, 2005 at 08:14:24AM -0400, Liaw, Andy wrote:
From: Robin Hankin
On May 20, 2005, at 11:00 am, Jan T. Kim wrote:
On Thu, May 19, 2005 at 03:10:53PM -0400, John Fox wrote:
Since you can use variables named c, q, or t in any event, I don't
see why
the existence of functions with these names is much of an
True, particularly since I'm not too likely to use these
(local)
functions, and variables of other types don't prevent
working.
(I thought this was a problem... I must be spoilt by
to read
too much Matlab code, where parentheses are used to both enclose
subscripts and
parameter lists, thus rendering subscript expressions and function
calls
syntactically indistinguishable.)
Heh, I'm a recovering Matlab user too. This is sooooooooooo true!
In Matlab:
f(10) # function f() evaluated at 10
f(10) # 10th element of vector f. confusing!!
R uses round brackets in two unrelated ways:
4*(1+2) --- using "(" and ")" to signify grouping
f(8) function f() evaluated at 8.
where there is no reason to use the same parenthesis symbol for both
tasks.
The same is done in Fortran/C/C++/Java/Python and God knows how many
others...
And this is different from the subscripting / function call ambiguity,
as these languages (to the extent I know them) are designed such that
parentheses for precedence control are syntactically distinguishable
from those used for function parameter lists: If the opening parenthesis
is preceded by an identifier, that identifier is a function name and
the parenthesis opens a parameter list.
(Python is a somewhat messy case, though, because it uses parentheses
for tuples too.)
Best regards, Jan