Capítulo 5 (pp. 133–150) de Computer Science I.
Temas
| Sección | Página | Contenido |
|---|---|---|
| Definir y Usar Funciones | 134 | Firmas, invocación, organización. |
| Cómo Funcionan las Funciones | 137 | Paso por valor vs paso por referencia. |
| Otros Aspectos | 142 | Funciones como entidades, sobrecarga, funciones con argumentos variables, parámetros opcionales/por defecto. |
Ideas Clave
- Paso por valor vs paso por referencia — la abstracción central; hecha concreta con punteros en C y referencias a objetos en Java.
- Las funciones como entidades de primera clase anticipan los punteros a función (C) y las lambdas (Java).
- El ejemplo Generalized Rounding reaparece en las partes de lenguajes.
Ejemplos
Retornar un valor
función max(a, b):
si a > b:
retornar a
retornar b
Paso por referencia
función swap(ref x, ref y):
temp ← x
x ← y
y ← temp
Muta las variables del llamador; el paso por valor las dejaría sin cambios.
En Java
static int max(int a, int b) {
return (a > b) ? a : b;
}
Java pasa los primitivos por valor, así que no puede hacer swap de dos int a
través de los parámetros — envuélvelos en un array u objeto para emular el paso por referencia.
Citas
[1] Computer Science I, Cap. 5, pp. 133–150.