Everything you do in R involves defining functions or calling functions. You cannot do any action without evaluating some function or other. Even assigning values to variables or subscripting vectors or lists involves evaluating functions. But functions are more than just recipes for how to perform different actions; they are also data objects in themselves, and there are ways of probing and modifying them.
If you define a simple function like the following, you can examine the components it consists of:
f <- function(x) x
There are three parts to a function: its formal parameters, ...