Ich habe eine Sequenz:Wie wendet man eine Zwei-Arg-Funktion auf eine Sequenz an?
[a b c ...]
und eine Funktion (f x y)
. Ich möchte Folgendes erhalten:
(f c (f b (f a 1)))
Etc. Wie geht das?
Ich habe eine Sequenz:Wie wendet man eine Zwei-Arg-Funktion auf eine Sequenz an?
[a b c ...]
und eine Funktion (f x y)
. Ich möchte Folgendes erhalten:
(f c (f b (f a 1)))
Etc. Wie geht das?
reduzieren, mit einer kleinen Anpassung:
(reduce #(f %2 %1) 1 [a b c])
@ A.Webb Tatsächlich, und die iterierten Anwendungen von 'f' nehmen die Sequenzelemente als erstes arg, nicht als zweites. –
(reduce (fn [acc x] (f x acc)) 1 [a b c d])
[reduzieren] (http://clojuredocs.org/clojure_core/clojure.core/reduce) –
was ist '1'? Ich kann keinen Weg finden, dies mit 'reduce' zu tun. Kannst du ein Beispiel geben? – yegor256
Klicken Sie auf den Link oben für Beispiele. Der erste Beispielblock zeigt einen Fall der Verwendung von "1" als Anfangswert. –