Es un lenguaje de programación funcional dentro de los dialectos de LISP (Scheme y Common Lisp).
JDK (Java Development Kit) Eclipse (IDE) + Counterclockwise (Plugin de Eclipse). Leiningen ayuda a la creación de proyectos en Clojure creando una estructura de directorios y archivos sobre los cuales desarrollas.
En los últimos años, han ido apareciendo distintos frameworks y librerías que se benefician de algunas de las características propias de los lenguajes funcionales. Parece existir una tendencia a utilizar estos lenguajes y librerías tanto en lado servidor como en el lado cliente. Twitter y LinkedIn fueron unos de los primeros en admitir que utilizaban lenguajes funcionales en el lado servidor, y que estaban mas que satisfechos con el nivel de eficiencia, calidad y mantenimiento de la lógica implementada de esta manera. Play Framework, basado en Scala, es otro ejemplo de framework basado en un lenguaje funcional que se está popularizando cada vez más.Y en el lado cliente, con la tendencia a crear aplicaciones JavaScript cada vez más complejas y reactivas, librerías como underscore.js, Knockout.js, AngularJS, ReactJS y Blaze, demuestran que el paradigma funcional y el “estilo” declarativo facilitan el desarrollo y el mantenimiento de las aplicaciones. Los lenguajes funcionales no son algo nuevo. Aunque quizás lo novedoso es poder utilizar estos lenguajes funcionales sobre plataformas actuales y poder reutilizar e interactuar con código existente. Con el objetivo de aprovechar las bondades de la programación funcional sobre las plataformas actuales nacen lenguajes como Scala y Clojure. Ambos son lenguajes funcionales que se ejecutan sobre la máquina virtual de Java, probablemente la plataforma estándar de facto para el desarrollo de aplicaciones empresariales.Leer más
(def imprime_meses_de_estacion
{:primavera ["marzo","abril","mayo"]
:verano ["junio", "julio", "agosto"]
:otoño ["septiembre", "octubre", "noviembre"]
:invierno ["diciembre", "enero", "febrero"]
})
;;Esto es un comentario en Clojure...
;;;;No afecta el catidad de ';' para asignar comentarios
;Consultas que se deben ejecutar en el RELP
;Pueden de ser de 3 formas las Consultas
;(get imprime_meses_de_estacion :primavera)
;(imprime_meses_de_estacion :primavera)
;(:primavera imprime_meses_de_estacion)
;;;;Para ejecutar Funciones se selecciona y le damos Ctrl + Enter
;Si 10 es mayor que 5 imprime 20 y Si 3 es menor que 9 entonces imprime la multiplicacion de 3 por 3
;; Esto imprime 20 y 9
(if ( > 10 5) 20 30)
(if (< 3 9 )
(* 3 3)
(* 4 3))
;;Si a es mayor que 6 imprime en un arreglo 3 por 4 y 4 por 4
;; en caso contrario imprime en un arreglo 4 por 4 y 4 por 6
;; Esto imprime [20 24]
(if (> 4 6)
[(* 3 4) ( * 4 4)]
[(* 5 4) ( * 4 6)]
)
;;Si es positivo el numero 10 imprime 3 por 5
;;en caso contrario imprime 4 por 5
;;;Esto imprime 15 porque es positivo el num 10
(if (pos? 10)
(* 3 5)
(* 4 5))
;;Dado un vector donde asociamos a=10 b=30.Si "a" es mayor que "b"
;imprime un arreglo con a y b [10 30].Sino imprime [30 10]
(let [a 10 b 30] (if (> a b)
[a b]
[b a]) )
;Funcion mas simple de Clojure
(fn [])
;el doble de X cuando x vale 10
(fn [x] x)
((fn [x] (* 2 x))10)
;;el doble de X cuando x vale 50
((fn [x] ( * 2 x)) 50)
;;En un arreglo con a y b. Si a es mayor que b, imprime en un mapa las llaves {:a 10 :b 20 }.
;Sino imprime {:a 20 :b 10}
((fn [ a b]
(if (> a b)
{:a a :b b}
{:a b :b a}))10 20)
© Todos los derechos reservados 2019 | Publicado por: Valente Guevara López