Wie kann ich in Scheme die Define/Lambda-Kurzschrift für verschachtelte Lambda-Ausdrücke innerhalb meiner Definition verwenden?Schema definieren/Lambda-Kurzschreibweise
Zum Beispiel mit dem folgenden Verfahren ...
(define add
(lambda (num1 num2)
(+ num1 num2)))
Man kann es so weit verkürzen:
(define (add num1 num2)
(+ num1 num2))
Doch wie kann ich die folgende Funktion in ähnlicher Weise zu verkürzen?
(define makeOperator
(lambda (operator)
(lambda (num1 num2)
(operator num1 num2))))
;example useage - equivalent to (* 3 4):
((makeOperator *) 3 4)
Danke - Ich werde Ihnen +1 geben, sobald mein Stimmlimit zurückgesetzt wird :). http://www.scheme.com/tspl2d/start.html#g1642 - Wenn Sie ein wenig nach unten scrollen, scheint der Autor über eine Art Punktsyntax zum Verkürzen von Defines zu sprechen. Irgendeine Idee worüber er spricht? – Cam
@incrediman: Ja, er redet über '(define (f. Xs) ...)', was es erlaubt, f mit einer beliebigen Anzahl von Argumenten aufzurufen (zB '(f 1 2 3 4 5)') und ' xs' wird eine Liste mit diesen Argumenten sein. – sepp2k
Ahhh. Gotcha - danke. Das ist eigentlich sehr nützlich, also bin ich froh, dass ich gefragt habe :) – Cam