Clojure é uma linguagem de programação funcional e dinâmica executada na JVM, desenvolvida por Rich Hickey como uma variante moderna de Lisp. É caracterizada pelo desenvolvimento dinâmico, programação funcional, herança de recursos de Lisp e polimorfismo em tempo de execução.
3. • é uma variante moderna de Lisp, desenvolvida por Rich Hickey.
• roda sobre a Java Virtual Machine(JVM).
• é um paradigma de linguagem de programação funcional.
• a sintaxe Clojure é construída em S-expressions.
4. o Desenvolvimento dinâmico
Não é apenas algo que você compilar e executar, mas algo com
o qual você pode interagir.
CARACTERÍSTICAS
5. CARACTERÍSTICAS
• Desenvolvimento dinâmico
o Programação funcional
Ele fornece as ferramentas para evitar estado mutável,
oferece funções como objetos de primeira classe, e enfatiza
iteração recursiva.
6.
7. CARACTERÍSTICAS
• Desenvolvimento dinâmico
• Programação funcional
o Lisp
Clojure é um membro da família Lisp de linguagens. Muitos
dos recursos do Lisp foram feitos para outras linguagens.
8. CARACTERÍSTICAS
• Desenvolvimento dinâmico
• Programação funcional
• Lisp
o Runtime polimorfismo
Os sistemas que utilizam o polimorfismo em tempo
de execução são mais fáceis de mudar e estender.
9. Clojure suporta polimorfismo de várias maneiras:
•A maioria das estruturas de dados de infra-estruturas fundamentais
no runtime Clojure são definidos por interfaces Java.
•Suporta a geração de implementações de interfaces Java em Clojure
usando proxy.
•Suporta polimorfismo ao longo de ambas classes e personalizados
hierarquias com multimethod .
•Suporta uma forma mais rápida de polimorfismo com protocolos
10.
11. CARACTERÍSTICAS
• Desenvolvimento dinâmico
• Programação funcional
• Lisp
• Runtime polimorfismo
o Programação concorrente
Clojure simplifica a programação multi-threaded de
várias maneiras.
12. CARACTERÍSTICAS
• Desenvolvimento dinâmico
• Programação funcional
• Lisp
• Runtime poliformismo
• Programação concorrente
o Hospedado na JVM
É projetado para ser uma linguagem hospedeira,
compartilhando o sistema de tipo JVM, GC, etc
13. PREPARARANDO
O AMBIENTE
1. Baixar o arquivo clojure.(versao).zip no site
2. Descompactar local de sua prefência
3. Criar um main ( use java -cp clojure-(versao).jar clojure.main )
4. Seja feliz.
14. CÓDIGO EXEMPLO
(defn operacao [funcao x y]
(println (funcao x y)))
(defn operacao [funcao x y] (println (funcao x y)))
(operacao (fn [a b] (+ a b)) 2 2)
(operacao (fn [a b] (- a b)) 4 6)
(operacao (fn [a b] (* a b)) 1 0)
(operacao (fn [a b] (/ a b)) 2 4)
(operacao (fn [a b] (+ a b)) 2 2)
(operacao (fn [a b] (- a b)) 4 6)
(operacao (fn [a b] (* a b)) 1 0)
(operacao (fn [a b] (/ a b)) 2 4)
15. POR QUE USAR CLOJURE ?
* Rápida
* Eficiente
* Sucinta
* Projetada para simultaneidade