Por si a alguno aún no le queda claro, algunas notas:
// Funciones anidadas: Una función está anidada cuando está definida dentro de otra
func chooseStepFunction(backward: Bool) -> (Int) -> Int { // Función que devuelve una función
func stepFoward(_ input: Int) -> Int { // Función anidada
return input + 1
}
func stepBackward(_ input: Int) -> Int { // Función anidada
return input - 1
}
return backward ? stepBackward : stepFoward
}
var value = -7
let moveNearerZero = chooseStepFunction(backward: value > 0) // Esto tendrá como valor una función que acepta un entero y retorna un entero
while value != 0 {
print("El valor actual es \(value).")
value = moveNearerZero(value) // Por eso aquí al llamar esa variable, le mando un parámetro
}
print("Cero!")```
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?