Clojure - Punts amb clausures 1 X56149


Statement
 

pdf   zip

thehtml

Es poden utilitzar clausures per definir objectes sense classe. En aquest problema definirem l’"objecte" per representar punts en el pla amb clausures. Així fent (punt 2 2) ens tornarà una instància amb les coordenades cartesianes {2, 2}.

  1. Afegiu la funcionalitat tal que a l’aplicar les keywords (a l’estil dels mètodes) :crt o :plr per obtenir les coordenades cartesianes o polars respectivament.
  2. Afegiu la possibilitat de calcular distàncies euclidianes amb la keyword :dst.
  3. Doneu una funció mes-propera que, donada una llista de punts i un punt, ens torni el punt de la llista més proper al donat com a paràmetre.
Public test cases
  • Input

    ((punt 2 0) :crt)
    ((punt 2 2) :plr)
    ((punt 2 2) :dst (punt 2 0))
    (mes-propera (punt 2 0) (list (punt 1 1) (punt 2 1) (punt 3 2)))
    

    Output

    (2 0)
    (2.8284271247461903 45.0)
    2.0
    (2 1)
    
  • Information
    Author
    Gerard Escudero
    Language
    Catalan
    Official solutions
    Clojure
    User solutions
    Clojure