Cómo aplicar una secuencia de funciones en una secuencia de variables en Clojure?

0

Pregunta

Tengo una función que toma una secuencia de función y una secuencia de argumentos. Esto debería devolver un vector con los resultados de cada función se aplica a la secuencia de los argumentos.

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

Estoy tratando de resolver con reducir, pero no sé cómo se aplican todas las funciones que sólo funciona para la primera función:

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

Mejor respuesta

4

Uso juxt:

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

O definir la función 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

Bien, (def solution juxt) iba a hacer para definir solution.
jaihindhreddy

En otros idiomas

Esta página está en otros idiomas

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