Primeira ‘Olhada’ em Clojure – Fatorial Exemplo

July 4, 2009 at 11:25 pm | In Clojure | 2 Comments

A alguns meses atrás eu dei uma olhada em Clojure, mas não testei nada, agora voltei a dar uma olhada mais com calma nessa linguagem, para quem não sabe do que se trata lá vai uma descricao direta do site:

Clojure is a dynamic programming language that targets the Java Virtual Machine. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language – it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection. ”

Você pode encontrar mais informações detalhadamete visitando o site(inglês).

Instalando:

Se você estiver usando Ubuntu você pode seguir o seguinte link onde tem todas informações para a instalação ( Inglês).

Você pode entrar agora num ambiente onde você pode ir digitando seus codigo e ver o resultado, estilo IRB(RUBY), no terminal faça:

ex

Você provavelmente deve tar achando estranho o modo como foi feitas as operações matemáticas aqui, mas pessoalmente é muito elegante desse mudo, vamos dar uma olhada na sintaxe da Clojure comprando com outras linguagens.

Em Clojure a definição de uma função/método, é a seguinte:

2

Temos tres coisas a se analisar nesse pequeno exemplo:

1 – Palavra chave para definição da função é defni

2 – Os argumentos são colocados dentro de colchetes ( [ ] )

3 – A forma como é realizada a soma do caso, primeiro usamos o operador desejado e logo após colocamos os argumetos(elegante não ?).

Definição de variavéis:

(def minha-variavel 10)


Definição de uma lista:

(def minha-lista ‘(1 2 3 4 5 6) )

Definição de um vetor:

[ 1 2 3 4 ]

Definição de Maps:

Maps são zero ou mais chaves/valores definidos entre chaves.

{:a 1 :b 2 :c 3}

em Clojure virgulas são considerados espaços em branco, então pode-se usar para organizar de melhor forma os maps, assim:

{:a 1, :b 2, :c 3}

Existem outros você deve olhar diretamento no web site para estudar com mais detalhe.

Um exemplo usando algo vindo do mundo Java:

jc

Para finalizar esse pequeno post sobre clojure vamos ao exemplo que faz parte do título,

o famoso fatorial.

fact

Abaixo como o exemplo é executado:

jp

2 Comments »

RSS feed for comments on this post. TrackBack URI

  1. Em clojure como eu faço para receber uma informação do usuario? Tipo, em C++ agente usa “scanf”, e em clojure?

    • Ola Glauber, você pode fazer algo assim:


      (let [var (read-line)]
      (if (= var "1")
      (println "OK")
      (println "Erro")))

      Irá isso que vc procurava:??

      Obrigado pelo comentario…


Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.