Feu una macro unless que, donada una expressió booleana i una expressió, només avalui l’expressió si el resultat de l’expressió booleana és falsa.
Feu una macro foreach per simular aquest tipus de bucle.
Feu una macro cf per a composar funcions.
Penseu que fa i feu un funció consumeix que faci funcionar l’últim exemple del joc de proves.
Input
(unless false (println "Aquest missatge es mostra perquè la condició és falsa."))
Output
Aquest missatge es mostra perquè la condició és falsa. nil
Input
(unless true (println "Aquest missatge no es mostra perquè la condició és certa."))
Output
nil
Input
(foreach [x [1 2 3]] (println (inc x)))
Output
2 3 4 nil
Input
((cf inc +) 2 4)
Output
7
Input
((cf (apply +) (map *)) [1 2 3] [2 2 2])
Output
12
Input
((cf count (filter even?)) [2 3 4])
Output
2
Input
((cf count (apply filter) (consumeix =)) 3 [3 2 3])
Output
2