En aquest problema heu d’implementar una sèrie de funcions usant llistes per comprensió.
Feu una funció my-map que emuli el map usant llistes per comprensió.
Feu una funció my-filter que emuli el filter usant llistes per comprensió.
Feu una funció my-zip-with que que emuli el map amb dues llistes usant llistes per comprensió. Podeu utilitzar el map a la part del for que va entre corxets.
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.
Feu una funció factors que, donat un natural no nul, genera la llista ordenada amb els seus factors (no necessàriament primers).
Cada apartat puntua 20 punts.
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)