Clojure: Hello World e Funções #1

Posted on August 26, 2010

2


Para rodar seus programas Clojure, além do clojure.zip, você precisa do Java runtime. Precisa ser a versão 5 no mínimo, mas é muito recomendado usar 6 pois melhorias de performance a melhores logs de erros.

Vamos analizar um pouco mais da linguagem agora. Quando estamos no prompt, podemos imprimir usando a função println.

hello world
user=> (println "hello world")
| hello world
-> nil

A segunda linha é o output e a terceira linha, nil, é o retorno da função.

Definindo funções

Como toda linguagem você pode definir suas próprias funções:

user=> (defn hello [name] (str "Hello, " name))

#'user/hello

O que essa linha faz ?

  • defn define uma função.
  • hello é o nome da função.
  • a função hello recebe um argumento, name.
  • str é uma chamada a uma função que concatena argumento em uma string.

O valor de retorno é #’user/hello. O prefixo #’ indica que a função foi guardada em uma variável Clojure, e user é o namespace dessa função.

Usando funções

Uma vez criada a função e guardada em uma variável clojure, podemos chama=la:

user=> (hello "anderson")

"Hello, anderson"

Variaveis especiais

As variáveis que criamos e guardamos no Clojure continuam acessíveis:

user=> (hello "anderson")
"Hello, anderson"

user=> (hello "Caelum")
"Hello, Caelum"

E agora podemos combinar essas variáveis especiais:

(str *1 " and " *2)

"Hello, Caelum and Hello, anderson"

Posted in: clojure