clojure
DESCRIPTION
Clojure. Instalando: Vá em http://code.google.com/p/clojure/downloads/list Faça download de clojure_1.0.0.zip Extraia o arquivo para uma pasta qualquer Abra a linha de comando (cmd) e vá para a pasta Execute o comando: java -cp clojure.jar clojure.main. Clojure. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Clojure](https://reader036.vdocuments.pub/reader036/viewer/2022072015/56813085550346895d965f40/html5/thumbnails/1.jpg)
Clojure
Instalando: Vá em http://code.google.com/p/clojure/downloads/list Faça download de clojure_1.0.0.zip Extraia o arquivo para uma pasta qualquer Abra a linha de comando (cmd) e vá para a pasta Execute o comando:
java -cp clojure.jar clojure.main
![Page 2: Clojure](https://reader036.vdocuments.pub/reader036/viewer/2022072015/56813085550346895d965f40/html5/thumbnails/2.jpg)
Clojure
Clojure é uma linguagem criada por Rich Hickey em 2007
É um dialeto de Lisp
![Page 3: Clojure](https://reader036.vdocuments.pub/reader036/viewer/2022072015/56813085550346895d965f40/html5/thumbnails/3.jpg)
Clojure - Motivação
Rich Hickey gostaria de uma linguagem de scripting que pudesse tomar proveito de uma plataforma já estabelecida no mercado
Gostaria também que a linguagem tivesse facilidades para o uso multithread
E que também fosse funcional
![Page 4: Clojure](https://reader036.vdocuments.pub/reader036/viewer/2022072015/56813085550346895d965f40/html5/thumbnails/4.jpg)
Lisp
Lisp é uma linguagem de programação que foi específicada em 1958 e ainda hoje é utilizada
Utiliza a convenção de sintaxe S-Expression, também conhecida como Listas com Parênteses
Lisp significa List processing language
![Page 5: Clojure](https://reader036.vdocuments.pub/reader036/viewer/2022072015/56813085550346895d965f40/html5/thumbnails/5.jpg)
Features
Programação funcional Hospedada na JVM Programação concorrente Desenvolvimento dinâmico
![Page 6: Clojure](https://reader036.vdocuments.pub/reader036/viewer/2022072015/56813085550346895d965f40/html5/thumbnails/6.jpg)
Programação Funcional
Clojure é uma linguagem funcional impura, pois provê facilidades para IO
A programação puramente funcional em Clojure é encorajada, mas não obrigatória (??????)
Como a maioria das linguagens funcionais, seus dados são imutáveis
![Page 7: Clojure](https://reader036.vdocuments.pub/reader036/viewer/2022072015/56813085550346895d965f40/html5/thumbnails/7.jpg)
Hospedada na JVM
Clojure é compilada para a bytecode da JVM Compartilha todas as facilidades da JVM, como
Garbage Collection, e o sistema de tipos Clojure pode chamar qualquer método de
qualquer classe de Java
![Page 8: Clojure](https://reader036.vdocuments.pub/reader036/viewer/2022072015/56813085550346895d965f40/html5/thumbnails/8.jpg)
Programação Concorrente
Uma das principais vantagens de Clojure por ser hospedada na JVM é a capacidade de multi threading
Todas as funções de Clojure (inclusive as user-defined) são Callable, uma interface de Java do pacote java.util.concurrent
![Page 9: Clojure](https://reader036.vdocuments.pub/reader036/viewer/2022072015/56813085550346895d965f40/html5/thumbnails/9.jpg)
Desenvolvimento dinâmico
Clojure apresenta uma interface de linha de comando chamada REPL (read-evaluate-print loop)
O código escrito é compilado na hora para bytecode e executado
![Page 10: Clojure](https://reader036.vdocuments.pub/reader036/viewer/2022072015/56813085550346895d965f40/html5/thumbnails/10.jpg)
O REPL
Para executar o REPL devemos ir a linha de comando e executar:
java -cp clojure.jar clojure.main
![Page 11: Clojure](https://reader036.vdocuments.pub/reader036/viewer/2022072015/56813085550346895d965f40/html5/thumbnails/11.jpg)
Sintaxe
Tudo