Cum de a aplica o succesiune de funcții pe o secvență de variabile în Clojure?

0

Problema

Am o funcție care ia o succesiune de funcții și de o succesiune de argumente. Acest lucru ar trebui să se întoarcă un vector cu rezultatele fiecărei funcții aplicată secvența de argumente.

((solution + max min) 2 3 5 1 6 4) ;;--> [21 6 1]

Im încercarea de a rezolva cu reducerea, dar nu știu cum să aplice toate funcțiile ea funcționează doar pentru prima funcție:

(defn solution
  [& args]
 (fn [& args2]
 (reduce (first args) [] args2)))
clojure higher-order-functions
2021-11-13 20:27:42
1

Cel mai bun răspuns

4

Utilizarea juxt:

((juxt + max min) 2 3 5 1 6 4)
=> [21 6 1]

Sau defini funcția solution:

(defn solution
  [& args]
  (fn [& args2]
    (apply (apply juxt args) args2)))

((solution + max min) 2 3 5 1 6 4)
=> [21 6 1]
2021-11-13 20:34:59

Ei bine, (def solution juxt) ar face pentru a defini solution.
jaihindhreddy

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................