En Scheme, ¿cómo puedo utilizar la abreviatura definir/lambda para expresiones lambda anidadas dentro de mi definición?Scheme define/lambda taquigrafía
Por ejemplo, dada la siguiente procedimiento ...
(define add
(lambda (num1 num2)
(+ num1 num2)))
Uno puede acortarlo a esto:
(define (add num1 num2)
(+ num1 num2))
Sin embargo, ¿cómo puedo acortar la siguiente función de manera similar?
(define makeOperator
(lambda (operator)
(lambda (num1 num2)
(operator num1 num2))))
;example useage - equivalent to (* 3 4):
((makeOperator *) 3 4)
Gracias - Voy a hacer +1 una vez que mi límite de votos se restablezca :). http://www.scheme.com/tspl2d/start.html#g1642 - si se desplaza un poco hacia abajo, el autor parece estar hablando de algún tipo de sintaxis de puntos para abreviar define. ¿Alguna idea de lo que está hablando? – Cam
@incrediman: Sí, está hablando de '(define (f. Xs) ...)' que te permitirá llamar a f con un número arbitrario de argumentos (por ejemplo, '(f 1 2 3 4 5)') y ' xs' será una lista que contiene esos argumentos. – sepp2k
Ahhh. Gotcha - gracias. Eso en realidad es bastante útil, así que me alegro de haberlo preguntado :) – Cam