# [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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._