The initial authors of R said?, "...we implemented the language by first writing an interpreter for a Scheme subset and then progressively mutating it to resemble S." Further on in that article they elaborated that their strategy was to create a parser that would take expressions in S-like syntax and translate them to Scheme S-expressions. Does R still work that way? Can R be made to accept Scheme syntax directly? Can you build it in such a way that when you start it up you get a Scheme read-eval-print-loop instead of the S-like interactive environment? I ask simply because I happen to like Scheme/Lisp syntax. But it also occurred to me that---considering the ease with which you can implement specialized little languages in Scheme---such an interface might make it easier to experiment with things like extensions to model and graphics formulae. ----------------------------------------------------------------- 1. @article{ig, author = "Ihaka, Ross and Gentleman, Robert", title = "R: A Language for Data Analysis and Graphics", journal = "Journal of Computational and Graphical Statistics", year = 1996, volume = 5, number = 3, page = 299, month = sep} -- Ed Kademan 508.651.3700 PHZ Capital Partners 508.653.1745 (fax) 321 Commonwealth Road <kademan at phz.com> Wayland, MA 01778 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Ed Kademan <kademan at phz.com> writes:> The initial authors of R said?, "...we implemented the language by > first writing an interpreter for a Scheme subset and then > progressively mutating it to resemble S." Further on in that article > they elaborated that their strategy was to create a parser that would > take expressions in S-like syntax and translate them to Scheme > S-expressions. > > Does R still work that way? Can R be made to accept Scheme syntax > directly? Can you build it in such a way that when you start it up > you get a Scheme read-eval-print-loop instead of the S-like > interactive environment? I ask simply because I happen to like > Scheme/Lisp syntax. But it also occurred to me that---considering the > ease with which you can implement specialized little languages in > Scheme---such an interface might make it easier to experiment with > things like extensions to model and graphics formulae. >Well, ... where do I start? The R (and to some extent also S) internals are still very Lisp/Scheme like. The parser/evaluator hasn't changed that much since the early versions of R. Perhaps the most notable change is that a list object is not a dotted-pair list as in Lisp anymore but a generic vector. (The pairlist object type still exists, but is hardly ever used.) If you try picking apart an expression using [[...]] you will see that almost everything maps to a Lisp-like syntax, e.g. quote(x <- 2 + 3) is essentially (<- x (+ 2 3)). Some slightly peculiar cases involve for loops and expressions with non-local returns like break, and return(). The evaluation model is somewhat non-Scheme because of the lazy evaluation and substitute() aspects. -- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._