Wie man eine Clojure-Funktion nehmen eine variable Anzahl von Parametern?
Ich bin zu lernen, Clojure und ich versuche, eine Funktion definieren, die eine variable Anzahl von Parametern (a variadic - Funktion) und zusammenfassen (ja, genau wie die + - Verfahren). Allerdings, ich weiß nicht, wie die Implementierung einer solchen Funktion
Alles, was ich tun kann, ist:
(defn sum [n1, n2] (+ n1 n2))
Natürlich diese Funktion nimmt zwei Parameter und zwei Parameter nur. Bitte Lehre mich, wie man es annehmen (und verarbeiten) einer unbestimmten Anzahl von Parametern.
InformationsquelleAutor der Frage rodrigoalves | 2012-02-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Allgemeinen nicht-kommutativen Fall können Sie bewerben:
Da die addition ist kommutativ, so etwas sollte auch funktionieren:
&
Ursachenargs
gebunden zu sein, um den Rest der Argumentliste (in diesem Fall die gesamte Liste, da gibt es nichts Links von&
).Offensichtlich die Definition Summe wie, das macht keinen Sinn, da anstelle von:
können Sie einfach schreiben:
InformationsquelleAutor der Antwort soulcheck
Yehoanathan erwähnt stelligkeit überlastung jedoch nicht auf eine direkte Beispiel. Hier ist, was er spricht:
(special-sum)
=>20
(special-sum 50)
=>60
(special-sum 50 25)
=>75
InformationsquelleAutor der Antwort Devin Walters
InformationsquelleAutor der Antwort hariszaman
Vom http://clojure.org/functional_programming
InformationsquelleAutor der Antwort viebel
Dieser nimmt eine beliebige Anzahl von Argumenten und fügen Sie Sie.
InformationsquelleAutor der Antwort ateymuri