Función: El Bloque de Construcción de Programas
Un bloque de código reutilizable diseñado para realizar una tarea específica.
Las funciones permiten la abstracción y la reutilización del código (principio DRY). Pueden ser puras o impuras, y en lenguajes modernos son tratadas como ciudadanos de primera clase.
graph LR
Center["Función: El Bloque de Construcción de Programas"]:::main
Pre_variable["variable"]:::pre --> Center
click Pre_variable "/terms/variable"
Rel_recursion["recursion"]:::related -.-> Center
click Rel_recursion "/terms/recursion"
Rel_compiler["compiler"]:::related -.-> Center
click Rel_compiler "/terms/compiler"
Rel_computational_neuroscience["computational-neuroscience"]:::related -.-> Center
click Rel_computational_neuroscience "/terms/computational-neuroscience"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explícalo como si tuviera 5 años
Una función es como una máquina en una fábrica. Pones algo dentro (como materiales), la máquina hace su trabajo y sale algo (como un juguete). ¡Puedes usar la misma máquina una y otra vez!
🤓 Expert Deep Dive
La pila de llamadas gestiona los registros de activación. La optimización de llamadas de cola elimina el crecimiento de la pila. Los cierres (closures) capturan variables de ámbito adjunto. Las funciones puras no tienen efectos secundarios, permitiendo transparencia referencial. Funciones de orden superior toman o devuelven funciones.