En post anteriores hemos visto algunos ejemplos sobre Clojure. Para continuar veremos más ejemplos. Recordar que Clojure es similar a LISP, por lo que el uso de paréntesis es común.
Para definir variables en Clojure:
;; Variables, Long, Double, String, Character, Boolean (def strCadena "Definimos una variable String" "Clojure") (def numeroInt "Definimos una variable Integer" 45) (def numeroFloat "Definimos una variable Float" 2.4) (def numeroDouble "Definimos una variable Double" 300.21) (def carChar "Definimos una variable Character" \u0032) (def booleano "Definimos una variable Boolean" true)
Sintaxis:
(def nombreVar "Comentario" Valor)
Imprimir en pantalla:
(println "\t [Programando en"strCadena"]") (println "Entero: "numeroInt) (println "Flotante: "numeroFloat) (println "Real: "numeroDouble) (println "Caracter: "carChar) (println "Booleano: "booleano)
Sintaxis:
(println "Mensaje:"Variable)
Si queremos conocer el tipo de dato:
;; Saber el tipo de dato (println "Tipo [numeroInt]:"(type numeroInt)) (println "Tipo [numeroFloat]:"(type numeroFloat)) (println "Tipo [numeroDouble]:"(type numeroDouble)) (println "Tipo [carChar]:"(type carChar)) (println "Tipo [booleano]:"(type booleano)) (println "Tipo [strCadena]:"(type strCadena))
Sintaxis:
;; Saber el tipo de dato (type Variable) (type Valor)
Como se puede ver algunos tipos en Clojure son:
- Long
- Double
- String
- Character
- Boolean
Creando funciones:
(comment Esto es un comentario multilínea en Clojure ) ;; Funciones (defn suma "Suma de dos numeros" [x y] (+ x y) ) (defn resta "Resta de dos numeros" [x y] (- x y) ) (defn multiplica "Multiplicacion de dos numeros" [x y] (* x y) ) (defn division "Division de dos numeros" [x y] (/ x y) ) ;; Esta funcion no devuelve valores (defn Ejemplo "Esta funcion no devuelve nada" [] ( if ( = 2 2) (println "Los valores son iguales") (println "Los valores no son iguales")))
Invocando funciones:
;; Uso de funciones (def x 4) (def y 1) (println "x ="x", y="y) (println "Suma:"(suma x y));; 5 (println "Resta:"(resta x y));; 3 (println "Producto:"(multiplica x y));; 4 (println "Division:"(division x y));; 4 (Ejemplo)
Sintaxis:
;; Función que devuelve valor (defn nombrefunc1 "Comentario en funcion" [x y] ;; operacion que devuelve valor ) (defn nombrefunc2 "Comentario en funcion" [] ;; no devuelve nada )
En Clojure contamos con diversas funciones para realizar operaciones aritméticas:
;; Operaciones y funciones matemáticas (println "4+5-(3*2)="(- (+ 4 5) (* 3 2)));; 3 (println "5/6/3+(5*2)-4="(- (+ (/ (/ 5 6) 3) (* 5 2)) 4));; 113/18 (println "(3*3)-(5+6)="(- (* 3 3) (+ 5 6)));; -2 (println "(8-9)*(6+3)="(* (- 8 9) (+ 6 3)));; -9 (println "220%200="(mod 220 200));; 20 (println "100%10="(mod 100 10));; 0 (println "340%300="(mod 340 300));; 40 (println "Maximo de (1 2 3 4 5)="(max 1 2 3 4 5));; 5 (println "Maximo de (5 1 66 0 4 8 21)="(max 5 1 66 0 4 8 21));; 66 (println "Minimo de (1 2 3 4 5)="(min 1 2 3 4 5));; 1 (println "Minimo de (5 1 66 0 4 8 21)="(min 5 1 66 0 4 8 21));; 0 (println "PI = "(Math/PI)) (println "PI * 2 = "(* Math/PI 2)) (println "No. aleatorio [rand 2] = "(rand 2)) (println "No. aleatorio [rand 10] = "(rand 2)) (println "No aleatorio [rand-int 100]= "(rand-int 100)) (println "Euler ="(Math/E)) (println "Pow(2, 10) ="(Math/pow 2 10)) (println "Pow(56, 2) ="(Math/pow 56 2))
También cuenta con funciones para manipular cadenas (String/Character):
;; Funciones de cadena (println "FERROCARRILERO tiene una longitud de:"(.length "FERROCARRILERO")) (println "MURCIELAGO tiene una longitud de:"(.length "MURCIELAGO")) (println "fernando en mayusculas:"(.toUpperCase "fernando")) (println "BENANCIO en minusculas:"(.toLowerCase "BENANCIO")) (println "El primer caracter de ABCDEF="(.charAt "ABCDEF" 0));; A (println "El tercer caracter de ABCDEF="(.charAt "ABCDEF" 2));; C (println "El ultimo caracter de ABCDEF="(.charAt "ABCDEF" 5));; F
Continuaremos con esta serie de post.
Enlaces:
https://emanuelpeg.blogspot.com/search?q=clojurehttps://www.javamexico.org/blogs/sr_negativo/aprendiendo_clojure
Comentarios
Publicar un comentario