[Rd] design question
Bill Venables
venables@acland.qld.cmis.csiro.au
Sun, 18 Jun 2000 17:57:29 +1000
Erich Neuwirth asks:
> let me ask you as possibly very silly question.
>
> what would you think of a shorthand notation for anonymous fuctions in
> arguments?
>
> let me illustrate this in how mathematica does it.
>
> mathematica has a function notation like R
>
> Map[Function[x, x^2], {1, 2, 3}]
>
> this can be abbreviated as
> Map[#^2 &, {1, 2, 3}]
The Maple notation is more understandable to most people:
map(x -> x^2, {1, 2, 3})
but of course "->" is already taken in S/R as the right pointing
assignment operator (although maybe I'm the only one who even knows
about it, let alone uses it...)
>
> & indicates a function expression,
> and # is the (one) anonymous argument.
> functions with more that one arguments
> (whch are positional) can be written as
> #1 #2
> and so on
Either swiped from TeX or both have swiped the idea from a common
source. It has the look of a macro language, which can be misleading.
>
> here is an example
> Outer[#1^2 + #2^2 &, {1, 2}, {3, 4}]
Cryptic for most users, I'd say, and very macro-like.
>
> in some cases, this notation is quite convenient.
> and since r is lexically scoped, it also should not be too dangerous.
> what do our architects think about introducing this kind of notation
> in r?
It has to have very low priority, possibly negative. If syntactic
revisions were ever seriously contemplated, I would strongly favour
trying to bring in some of the S4 changes, but even there I would
regard the semantic extensions as much more urgent than the purely
syntactic ones. Consistency with S-PLUS is not the final arbiter of
everthing but it does really matter.
--
Bill Venables, Statistician, CMIS Environmetrics Project
CSIRO Marine Labs, PO Box 120, Cleveland, Qld, AUSTRALIA. 4163
Tel: +61 7 3826 7251 Email: Bill.Venables@cmis.csiro.au
Fax: +61 7 3826 7304 http://www.cmis.csiro.au/bill.venables/
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel 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-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._