El arte de programar en R Un leguaje para la estadística - page 90

Capítulo 5
Escritura de Funciones
En los capítulos anteriores se han revisado distintos tópicos de la programa-
ción con este lenguaje. En medio de las explicaciones provistas, se ha indicado
implícitamente la forma de escribir funciones; en particular, en la sección 2.7
en la página 44, se ha dado una breve introducción al tema de la escritura de
funciones. En este capítulo se abordará ese mismo tema, pero de una manera
un poco más formal.
5.1. Estructura formal de una función
Como se ha visto con anterioridad, R trata las funciones prácticamente igual
que cualquier otra variable. Así, ellas se pueden manipular de manera seme-
jante a como se hace con otros objetos de R: se pueden pasar como argumentos
de otras funciones, se pueden regresar como el valor final de una función, se
pueden definir en el interior de otra función, etc. Para crear o definir una fun-
ción, se emplea la directiva
“function”
, en general, asociándola con un sím-
bolo mediante una operación de asignación, como se muestra en la Fig. 5.1.
Esta directiva, tiene dos partes, la definición de los
argumentos formales
de la
función, y el cuerpo de la función. El cuerpo de la función está constituido por
una o más expresiones válidas del lenguaje. Al ejecutarse la función, el valor
de la última expresión en la secuencia de ejecución, es el valor que la función
entrega como resultado; esto simbólicamente se ha indicado en la figura, como
la última expresión del cuerpo, aunque, como se verá más adelante no necesa-
riamente es así.
Existen dos
momentos
importantes en la
vida
de una función: la definición
de la función, que básicamente ocurre una vez, y la ejecución de la función,
que puede ocurrir un sinnúmero de ocasiones y en contextos muy diversos.
La nociones de argumentos formales, variables y valor de regreso en el inte-
rior de una función, deben ser examinadas desde la perspectiva de esos dos
momentos.
87
1...,80,81,82,83,84,85,86,87,88,89 91,92,93,94,95,96,97,98,99,100,...198
Powered by FlippingBook