Wacek Kusnierczyk wrote:
Peter Dalgaard wrote:
Johannes Huesing wrote:
Stavros Macrakis <[EMAIL PROTECTED]> [Wed, Dec 10, 2008 at
04:59:25AM CET]:
So I conclude that what is really meant by "R semantics are based on
Scheme
semantics" is "R has functions as first-class citizens and a correct
implementation of lexical scope, including upwards funarg".
One other thing reminiscient of Lisp is the infix notation (as in
"+"(1, 3)), which the authors have sprinkled with enough syntactic
sugar that the users
needn't be bothered with. To the benefit of ubiquity, I'd think.
That's prefix notation, infix is "1+3" (and postfix is "1,3,+" as in
old HP calculators). But you're right that R has Lisp-like parse trees
with a thin layer of syntactic sugar:
Lisp writes function calls as (f x y) for f(x,y) and (+ 1 3) for 1+3.
In R we have
e <- quote(f(x,y))
e[[1]];e[[2]]; e[[3]]
f
x
y
e <- quote(1+3)
e[[1]];e[[2]]; e[[3]]
`+`
[1] 1
[1] 3
the reminiscence is limited, though. the following won't do:
`+`(1,2,3)
and
quote(1+2+3)
is not a list of `+`, 1, 2, and 3.
vQ
Essentially irrelevant. You have to distinguish between form and
function, and it is not important that the two languages contain
slightly different definitions and semantics of particular functions.
The point is that the general _form_ of the parse tree is the same.
Because of the syntactic sugar, R does not have `+` equivalent to `sum`
like LISP does. `+` is a binary (or unary) operator and 1+2+3 parses as
LISPs
(+ (+ 1 2) 3).
--
O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.