Bezüglich currying in Ruby 1.9.x, ich habe es in einigen Orten wurden verwendet und kann wie im Grunde unterstützt Standardparameter auf die proc Argumente übersetzt werden:Ruby Reverse Currying: Ist das möglich?
p = proc {|x, y, z|x + y + z}
p.curry[1] #=> returns a lambda
p.curry[1, 2] #=> returns a lambda
p.curry[1, 2, 3] #=> 6
p2 = p.curry[1, 2]
p2.(2) #=> 5
p2.(4) #=> 7
sehr praktisch, nicht wahr? Das ist, ich würde gerne in der Lage sein, rückwärts zu curren, das heißt, fülle das letzte Argument meines Procs mit einem zufälligen Wert. Wie folgt:
p = proc{|x, y| x - y }.curry[1]
p.(4)
mein gewünschtes Ergebnis wäre 3. das gibt -3 zurück.
humm, sieht sauber genug, geht es zu versuchen. Der Anwendungsfall besteht darin, an einer bestimmten Stelle das gleiche Verhalten zu replizieren, das Sie von Standardargumenten für Methoden erhalten, und diese können nur vom letzten Argument zurück gesetzt werden. Ich wollte die gleiche Methode verwenden und das Standardargument durch einen anderen Wert in einem anderen Kontext ersetzen. – ChuckE