Clojure es un lenguaje de programación funcional que corre bajo la JVM, se considera un dialecto de
Lisp.
;; esto es un comentario
(println "hola mundo!")
Lo ejecutamos:
java -jar clojure_version.jar holamundo.cjl
Clojure 1.5.1
user =>
A mi parecer Clojure es un lenguaje algo complejo, como lo puede ser el uso de paréntesis, los
operadores,definir variables y funciones. Pero no es imposible de aprender. Tan solo hay que practicar
bastante.
Links:
Descarga: http://clojure.org/
Twitter del creador del lenguaje:https://twitter.com/richhickey
;; java -jar
clojure.jar
matematico.cjl
Esto es un comentario
multilínea
)
java -jar clojure_version.jar matematico.cjl
;;nuestro 'switch'
(case numero
"1" (println "Introduciste el numero 1")
"2" (println "Introduciste el numero 2")
"3" (println "Introduciste el numero 3")
(str "else" numero(println "Ese numero no esta en el rango"))
)
;;6. 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*))
;; 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)
;;7. Funciones
;;defino las funciones
(defn obtenerImc [p,t]
(/ p (* t t)))
(try
(println "talla ideal:" (obtenerTalla peso imc))
(catch Exception e (str "error: " (.getMessage e)))
)
;;8. Funciones
;;mostrar un mensaje, no devuelve ningún valor
(defn mensaje
(println "Este es un simple mensaje")
)
(mensaje )
(suma 23 45);;suma: 68
(JOptionPane/showMessageDialog nil,
(str "Estas usando "sistema)
)
;;imprimimos
(JOptionPane/showMessageDialog nil,
(str "Cadena: "entrada)
)
;;parseInt
(defn pasaEntero [s]
(Integer. (re-find #"\d+" s)))
;;función cuadrado
(defn cuadrado [n]
(* n n)
)
(JOptionPane/showMessageDialog nil,
(str "El numero introducido es: "numero)
)
(JOptionPane/showMessageDialog nil,
(str "Al cuadrado es: "(cuadrado (String->Number numero)))
)
(try
;; variable "pregunta"
(def pregunta
(JOptionPane/showConfirmDialog nil,
(str "Estas de acuerdo en que Clojure es mejor que Lisp?")
)
)
(JOptionPane/showMessageDialog nil,
(str "Bien, estas de acuerdo")
)
(if (= pregunta 1)
(JOptionPane/showMessageDialog nil,
(str "Claro, entiendo que no todos pueden estar de
acuerdo")
)
((JOptionPane/showMessageDialog nil,
(str "Operacion cancelada"))
)
;; 14. Disparejo
;;1 Juego del disparejo
(comment
(try
(if (= hugo 0) (println "Hugo:SOL") (println "Hugo:AGUILA"))
(if (= paco 0) (println "Paco:SOL") (println "Paco:AGUILA"))
(if (= luis 0) (println "Luis:SOL") (println "Luis:AGUILA"))