### Functions as Objects (Introduction to Statistical Computing)

Lecture
10: Functions in R are objects, just like everything else, and so can be
both arguments to and return values of functions, with no special machinery
required. Examples from math (especially calculus) of functions with other
functions as arguments. Some R syntax relating to functions. Examples with
`curve`. Using `sapply` to extend functions of single numbers to
functions of vectors; its combination with `curve`. We write functions
with lower-level functions as arguments to abstract out a common pattern of
operations. Example: calculating a gradient. Numerical gradients by first
differences, done two different ways. (Limitations of taking derivatives by
first differences.) Incorporating this as a part of a larger algorithm, such
as gradient descent. Using adapters, like wrapper functions and anonymous
functions, to fit different functions together. Examples from math (especially
calculus) of operators, which turn one function into another. The importance
of scoping when using functions as return values. Example: creating a linear
predictor. Example: implementing the gradient operator (two different ways).
Example: writing `surface`, as a two-dimensional analog to the
standard `curve`. The use of `eval` and `substitute` to
control when and in what context an expression is evaluated. Three
increasingly refined versions of `surface`, employing `eval`.

R for examples.

Introduction to Statistical Computing

Posted at October 01, 2012 10:30 | permanent link