Clojure - Macros Z52086


Statement
 

pdf   zip

thehtml
  • 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.
Public test cases
  • 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
    
  • Information
    Author
    Gerard Escudero
    Language
    Catalan
    Official solutions
    Clojure
    User solutions
    Clojure