sábado, 24 de mayo de 2014

Crear 'clases' en Clojure

¿Cómo puedo crear un 'clase' en Clojure?
(defrecord Objeto [prop1 prop2  propN])

Para hacer uso de esta 'clase' escribimos lo siguiente:
(def miObjeto  "primerValor" "segundoValor" "otroMas")

Ejemplo. Crear una 'clase' Fecha, con tres propiedades: dia,mes, y año


;;importamos la librería java.util.Scanner para introducir datos 
(import '(java.util Scanner))
   (def entrada(Scanner. *in*))
 

;;creamos una interface para mostrar los valores tecleados
(defprotocol Servicio
  (verFecha[this]))
 

;;creamos la 'clase' Fecha e implementamos la interface Servicio
(defrecord Fecha[dia mes anyo]
   Servicio
   (verFecha[this](println "Fecha: { dia:"dia" -mes: "mes" -anyo:"anyo"}")))

 ;; probamos

(try
  (def miFecha(Fecha.  "23" "agosto" "1943"))
  (verFecha miFecha)


 (println "Dia:")
 (def dia(.nextLine entrada))
  (println "Mes:")
  (def mes(.nextLine entrada))
  (println "Anyo:")
  (def anyo(.nextLine entrada))
  (def miFecha2(Fecha.  dia mes anyo))
  (verFecha miFecha2)
 

(catch Exception e (str "ha ocurrido una excepcion: " (.getMessage e))))

Ejecutamos:
java -jar clojure-1.6.0.jar  claseFecha.cjl

No hay comentarios:

Publicar un comentario

WMIC

¿Has tenido la necesidad de obtener  la licencia OEM de tu PC o alguna otra característica técnica?  Usualmente existen herramientas visua...