ronggui wrote:
>It's often heard that the S language is a functional language.But
What's the exact meaning of this termology in the context of S language?
>
>
Here's the idea. If you have:
x <- 1:10
f <- function(y) { x <- sin(y / 2); x + y}
f(-3:3)
then the 'x' inside 'f' does not wipe out your top-level
'x'
when 'f' is called.
Operationally it means that objects are only changed via
the assignment operator. (This is not strictly true, but other
vehicles, such as '<<-', are generally considered bad style.)
The reason for wanting this behavior is so that you don't need
to worry about objects getting invisibly changed while you
are analyzing some data, or whatever it is that you are doing.
That is, the language was designed to be human efficient, while
sacrificing some machine efficiency.
Patrick Burns
patrick at burns-stat.com
+44 (0)20 8525 0696
http://www.burns-stat.com
(home of S Poetry and "A Guide for the Unwilling S User")