Clojure

18
CLOJURE SANDY MACIEL

Transcript of Clojure

CLOJURE SANDY MACIEL

É uma linguagem dinâmica e funcional que é executada na JVM

• é 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)

POR QUE USAR CLOJURE ? * Rápida * Eficiente * Sucinta * Projetada para simultaneidade

CLOJURE NO MUNDO

OBRIGADA!!!!!