Clojure - Ús de llistes per comprensió W54264


Statement
 

pdf   zip

thehtml

En aquest problema heu d’implementar una sèrie de funcions usant llistes per comprensió.

  1. Feu una funció my-map que emuli el map usant llistes per comprensió.
  2. Feu una funció my-filter que emuli el filter usant llistes per comprensió.
  3. Feu una funció my-zip-with que que emuli el map amb dues llistes usant llistes per comprensió.
  4. Feu una funció thingify que, donades dues llistes d’enters, genera la llista que aparella els elements si l’element de la segona llista divideix al de la primera.
  5. Feu una funció factors que, donat un natural no nul, genera la llista ordenada amb els seus factors (no necessàriament primers).

Puntuació

Cada apartat puntua 20 punts.

Public test cases
  • Input

    (my-map #(* % 2) (range 1 5))
    (my-filter odd? (range 1 5))
    (my-zip-with * (range 1 4) (range 1 4))
    (thingify (range 1 6) (range 1 3))
    (factors 24)
    
    

    Output

    (2 4 6 8)
    (1 3)
    (1 4 9)
    ([1 1] [2 1] [2 2] [3 1] [4 1] [4 2] [5 1])
    (1 2 3 4 6 8 12 24)
    
    
  • Information
    Author
    Albert Rubio / Jordi Petit / Gerard Escudero
    Language
    Catalan
    Official solutions
    Clojure
    User solutions
    Clojure