Cumplen

Defina la función cumplen? tal que dada una colección (vector o conjunto) de predicados y una colección (lista, vector o conjunto) de elementos regresa true si todos los elementos de la colección dada regresan true ante cada uno de los predicados dados.

Pruebas

=> (cumplen? [even? neg?] [-80 -16 -24 -2])
true

;; Suponiendo que las funciones ya están definidas
=> (cumplen? [contiene-tres-elementos? son-positivos? están-ordenados-de-menor-a-mayor?] #{[1 2 3] [56 78 93] [890 3626 93562]})
true

;; Suponiendo que los predicados ya están definidos
=> (cumplen? [vocal? minúscula? sin-acento?] '(\a \E \i \a))
false

Restricciones

  • No es posible hacer uso de recursividad ni de las funciones loop (recur), do, filter, map, mapv y pmap, any?, some*, every-pred, every? y apply de Clojure.
  • No es posible hacer uso de ifs.