Linguagem Clojure

1182 palavras 5 páginas
Clojure
Alunos:
Ian Dias de Souza Pierson
Vinícius S. Morais Provazzi
Murilo Sotelo

De onde veio Clojure?
Rick Hickey, o criador da Linguagem Clojure queria uma linguagem de programação que fosse: ●

Uma lisp;



Para programação Funcional;



Simbiotica com uma plataforma já estabelecida;



Voltada para Programação Concorrente.

O que é Clojure?
Algumas características da Linguagem:


Linguagem funcional;



Propósito Geral;



Roda na Java Virtual Machine (compilada diretamente para JVM bytecode);



Linguagem Dinâmica;

O que é Clojure?


É um dialeto de Lisp (notações prefixo, muitos parênteses!); ●

Suporte para programação Concorrente(MultiThreads);



Estruturas de dados imutáveis e persistentes;

Programação Funcional
É um paradigma de programação que apresenta o conceito de funções de primeira classe sem efeitos colaterais:


Funções podem receber outras funções como parâmetros e retornar funções como resultados;



Evita estados mutáveis (Funções não alteram o estado do programa).

Desenvolvimento Dinâmico
O que significa dizer que Clojure é uma linguagem dinâmica?


Interface de programação
REPL( Read-Eval-Print-Loop);



Compilação Dinâmica.

primária

é

a

Clojure tem inteiros de precisão arbitrária, strings, doubles, characters, simbolos e palavras chave:
(* 2 4)
-> 8
"string"
-> "string"
3.14159
-> 3.14159
'symbol
-> symbol

Clojure Funcional
O comando fn cria um objeto função. Ele tem valor como qualquer outro, é possivel guarda-lo em uma variavel, passa-lo para funções, etc.
(def hello (fn [] "Hello world"))
-> #'user/hello
(hello)
-> "Hello world"

Clojure Funcional defn é uma macro que facilita a definição de funções: (defn argcount
([] 0)
([x] 1)
([x y] 2)
([x y & more] (+ (argcount x y) (count more))))
-> #'user/argcount
(argcount)
-> 0
(argcount 1)
-> 1
(argcount 1 2)
-> 2
(argcount 1 2 3 4

Relacionados

  • Clojure
    1022 palavras | 5 páginas
  • Exercício de haskell
    354 palavras | 2 páginas
  • Linguagens funcionais
    379 palavras | 2 páginas
  • questoes neo4j
    284 palavras | 2 páginas
  • Teste
    299 palavras | 2 páginas
  • Cloud
    653 palavras | 3 páginas
  • paradigmas e multimidia
    660 palavras | 3 páginas
  • Eclipse (compilador)
    497 palavras | 2 páginas
  • Processos de software : convencionais e heavyweight + ide intellij-idea + tdd
    1093 palavras | 5 páginas
  • Escola Municipal Doutor Leandro Franceschini
    700 palavras | 3 páginas