Es bastante sencillo.
función add (a) {
var sum = a
función add_and_repeat (b) {
si (b) {
suma + = b
volver add_and_repeat
}
más
suma de retorno;
}
- ¿Cuál es un ejemplo de un problema cuya respuesta no es obvia, pero si los datos se visualizan de una manera nueva, se vuelven más fáciles de resolver?
- ¿Cómo ha influido la teoría de conjuntos en el desarrollo de las estructuras de datos?
- ¿Los problemas informáticos de tipo nQueens tienen aplicaciones en física, en particular en la teoría de la materia condensada?
- ¿Cuándo no se puede usar el combinador Y para definir la recursividad en el cálculo lambda?
- Cómo imprimir el conjunto de potencia de un conjunto finito de enteros en Java usando recursividad
add_and_repeat.toString = function () {return sum}
volver add_and_repeat
}
La función “add” devolverá otra función “add_and_repeat”, que cuando se llama solo se devuelve a sí misma (no realmente a sí misma sino más bien como una versión copiada de sí misma). Esto significa que siempre devolverá una función, entonces, ¿cómo se obtiene el valor? Cada función tiene un Function.prototype.toString () que se puede ajustar para devolver la suma. El único inconveniente de esto es que el tipo de valor devuelto será “función” y no un “número” como cabría esperar. Para eso he agregado una condición If, así que ahora si pones un () al final, el tipo de valor devuelto será una suma.