Funciones Puras
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#Temario-BSA - Bash Scripting Avanzado
|
||||
|
||||
---
|
||||
## ¿Qué es una "Función Pura"?
|
||||
En programación, el concepto de la programación pura es aquella función que no cause efectos secundarios en el programa, cuyas funciones estén aisladas del resto del programa y no afecten a nada más que a lo que se le pide que haga.
|
||||
|
||||
### Un ejemplo de una "Función Impura":
|
||||
```SHELL
|
||||
contador=0 # Esto es un estado global
|
||||
|
||||
incrementar() {
|
||||
#Efecto secundario: Se esta modificando una variable externa
|
||||
contador=$((contador + 1))
|
||||
}
|
||||
|
||||
incrementar
|
||||
echo $contador # imprimirá 1
|
||||
incrementar
|
||||
echo $contador # imprimirá 2 (¡El resultado cambió sin cambiar imputs!)
|
||||
```
|
||||
Esta función depende de una variable global y la modifica. Si la ejecutas dos veces, el resultado cambia aunque no le pases argumentos.
|
||||
|
||||
### Un ejemplo de una "Función Pura":
|
||||
```SHELL
|
||||
sumar() {
|
||||
# 1. Se usa 'local' para aislar variables del resto del script
|
||||
local num1=$1
|
||||
local num2=$2
|
||||
|
||||
local resultado=$((num1 + num2))
|
||||
|
||||
# 2. 'Devolver' el valor por salida estándar (stdout)
|
||||
echo "$resultado"
|
||||
}
|
||||
|
||||
# Uso: Capturamos la salida
|
||||
total=$(sumar 10 5)
|
||||
echo "El total es: $total"
|
||||
```
|
||||
Esta función es aislada. Recibe datos, calcula y "devuelve" el dato imprimiéndolo (stdout), sin tocar nada más.
|
||||
Reference in New Issue
Block a user