background preloader

Clojure

Facebook Twitter

Programando em Clojure. Origem: Wikilivros, livros abertos por um mundo aberto. Prefácio - Sobre este livro e seus autores Introdução - Introduzindo a linguagem de programação Clojure Começando[editar | editar código-fonte] Preparando o ambiente - Instalando o Clojure, Emacs e preparando o ambiente Conceitos-chave - Conceitos-chave de Clojure e programação funcional Tipos de dados[editar | editar código-fonte] Trabalhando com funções[editar | editar código-fonte] Sequências preguiçosas[editar | editar código-fonte] Condicionais[editar | editar código-fonte] Recursão[editar | editar código-fonte] Variáveis[editar | editar código-fonte]

Clojure Programming/Examples. This page is a collection of examples of clojure code. It's living list, so feel free to contribute. In order to make this as relevant as possible, please observe the following guidelines Create a separate page for your entry. Place it in Clojure_Programming/Examples/Your_Example_NameCreate a one paragraph summary of your example, and place it in this page.Remember to link to your example Thanks for doing your part to help the Clojure community! Using JDBC[edit] JDBC information can be found here. Norvig's Spelling Corrector[edit] Peter Norvig wrote an excellent example of a spelling corrector. You can see the Clojure example here Simple REPL on a Socket[edit] Accessing a REPL over network is a very useful feature for many situations, from designing a web site to debugging a satellite in space.

Simple GUI : Temperature Converter[edit] Simple example GUI application (from discussion group, updated for 20080329 release). Lazy Fibonacci[edit] Talking to Excel[edit] A detailed explanation is here. Programando em Clojure/Conceitos-chave. Origem: Wikilivros, livros abertos por um mundo aberto. A programação funcional é um paradigma de programação que se centra ao redor do conceito de funções de primeira classe sem efeitos colaterais (as suas variaveis não podem ser alteradas ao decorrer do programa). Na ciência da computação, entidades de primeira classe são entidades que podem ser usados sem restrições em linguagens de programação (em comparação com outras entidades da mesma linguagem).

Isso quer dizer que funções podem receber funções como parâmetro e retornar funções como resultados. Um conceito chave de funções no paradigma funcional é que funções não possuem efeito colateral. A técnica mais amplamente usada na programação funcional como método de solução de problemas é a recursão. O que é um paradigma? Quando escrevemos programas de computador, um problema que sempre temos em mente é como traduzir para a linguagem de programação o que queremos dizer. Exemplo de uso[editar | editar código-fonte] (list 0 1 2 3 4 5 6 7 8 9) Software transactional memory. Performance[edit] The benefit of this optimistic approach is increased concurrency: no thread needs to wait for access to a resource, and different threads can safely and simultaneously modify disjoint parts of a data structure that would normally be protected under the same lock.

However, in practice STM systems also suffer a performance hit compared to fine-grained lock-based systems on small numbers of processors (1 to 4 depending on the application). This is due primarily to the overhead associated with maintaining the log and the time spent committing transactions. Even in this case performance is typically no worse than twice as slow.[5] Advocates of STM believe this penalty is justified by the conceptual benefits of STM[citation needed].

Theoretically, the worst case space and time complexity of n concurrent transactions is O(n). Conceptual advantages and disadvantages[edit] Composable operations[edit] This scheme has been implemented in the Glasgow Haskell Compiler. C/C++[edit] A linguagem de programação Clojure. Este artigo aborda a linguagem de programação Clojure. Clojure é um dialeto derivado do Lisp. Não se parte do princípio que você já conheça o Lisp. Ao invés disso, considera-se que você tenha conhecimento da tecnologia Java. Para escrever programas usando Clojure, você precisa de um Java Development Kit V5 ou mais recente e da biblioteca Clojure. Para este artigo, foram usados JDK V1.6.0_13 e Clojure V1. O que é Clojure? Não passou muito tempo desde que executar programas na Java Virtual Machine (JVM) significava escrever seu programa usando a linguagem de programação Java. Clojure é outra linguagem de programação para JVM. Como você pode supor, o Clojure é uma linguagem de programação funcional.

Voltar para parte superior Exemplo de Clojure Para muitos, a melhor maneira de aprender uma nova linguagem é iniciar o código de gravação. Configuração mínima Tudo que você precisa para trabalhar com o Clojure é um JDK e a biblioteca Clojure, que é um único arquivo JAR. Listagem 1. Listagem 2. Primeiros passos com Clojure – Iniciando com o pé direito « /dev/Kico. Clojure é um tópico que tem ocupado boa parte do meu tempo nos últimos meses. É a realização de um sonho antigo: ver uma variante do Lisp emplacando no ambiente corporativo. Isto porquê a linguagem é feita para ser executada dentro de uma máquina virtual. Atualmente, há implementações da linguagem tanto para a JVM quanto para a CLR, o que possibilita reaproveitamento total do nosso código legado, além de, é claro, todas as bibliotecas e componentes que amamos e estamos acostumados a trabalhar. Se você ainda não conhece, Clojure é um dialeto do Lisp criado por Rich Hickey. O significado do seu nome já nos diz alguma coisa: é um trocadilho com closure, referenciando seu caráter funcional.

Também é um anagrama: CLR, Lisp e JVM (recomendo a leitura desta entrevista com o autor da linguagem sobre o assunto). (daqui pra frente vou usar os termos Lisp e Clojure como se fossem a mesma linguagem (sim, eu sei que são diferentes…)) Começando com o pé direito A sintaxe “alienígena” Funções em ação Ei? Programação Funcional e Concorrente para JVM com Clojure. Proposta Clojure é uma linguagem de programação funcional para JVM que vem crescendo muito em popularidade, apesar de ter sido criada há apenas dois anos. Esta linguagem, que possui muitas semelhanças com Lisp, dá a devida atenção a uma característica cada vez mais presente – e necessária – nos softwares modernos: concorrência. Esta palestra dará aos participantes uma breve introdução à linguagem de programação Clojure, passando por aspectos importantes da Programação Funcional e mostrando como tais aspectos ajudam na solução de problemas corriqueiros de concorrência de uma forma simples e elegante.

Palestrante Daniel Martins é graduado em Sistemas de Informação e desenvolve softwares como hobby e profissão desde 2000. Fundador da Destaquenet Soluções, uma empresa voltada à prestação de serviços baseados em software livre, ele possui especialização na plataforma Java e utiliza a tecnologia há vários anos, sendo programador e desenvolvedor web certificado pela Sun Microsystems.