Clojure
-
Upload
sandy-maciel -
Category
Technology
-
view
235 -
download
0
Transcript of Clojure
• é 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.
o Desenvolvimento dinâmico
Não é apenas algo que você compilar e executar, mas algo com o qual você pode interagir.
CARACTERÍSTICAS
CARACTERÍSTICAS• Desenvolvimento dinâmicoo 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.
CARACTERÍSTICAS• Desenvolvimento dinâmico• Programação funcionalo Lisp
Clojure é um membro da família Lisp de linguagens. Muitos dos recursos do Lisp foram feitos para outras linguagens.
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.
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
CARACTERÍSTICAS• Desenvolvimento dinâmico• Programação funcional• Lisp • Runtime polimorfismoo Programação concorrente
Clojure simplifica a programação multi-threaded de várias maneiras.
CARACTERÍSTICAS• Desenvolvimento dinâmico• Programação funcional• Lisp • Runtime poliformismo• Programação concorrenteo Hospedado na JVM
É projetado para ser uma linguagem hospedeira, compartilhando o sistema de tipo JVM, GC, etc
PREPARARANDO O AMBIENTE
1. Baixar o arquivo clojure.(versao).zip no site2. Descompactar local de sua prefência3. Criar um main ( use java -cp clojure-(versao).jar clojure.main )4. Seja feliz.
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)
REFERÊNCIAS http://www.univale.com.br/unisite/mundo-j/artigos/53_Clojure.pdf http://clojure.org/