Clojure - Declaração de Cond

Clojure oferece outra declaração de avaliação chamada de ‘cond’declaração. Esta instrução leva um conjunto de pares de teste / expressão. Ele avalia cada teste um de cada vez. Se um teste retornar lógico verdadeiro, 'cond' avalia e retorna o valor da expressão correspondente e não avalia nenhum dos outros testes ou expressões. 'cond' retorna nulo.

Sintaxe

A seguir está a forma geral desta declaração.

cond
(expression evaluation1) statement #1
(expression evaluation2) statement #2
(expression evaluationN) statement #N
:else statement #Default

O funcionamento geral desta declaração é o seguinte -

  • Existem várias avaliações de expressão definidas e para cada uma há uma instrução que é executada.

  • Há também uma instrução padrão, que é executada se nenhum dos valores anteriores for avaliado como verdadeiro. Isso é definido pela instrução: else.

Exemplo

A seguir está um exemplo da declaração 'cond' em Clojure.

(ns clojure.examples.hello
   (:gen-class))

;; This program displays Hello World
(defn Example []
   (def x 5)
   (cond
      (= x 5) (println "x is 5")
      (= x 10)(println "x is 10")
      :else (println "x is not defined")))
(Example)

No exemplo acima, estamos inicializando primeiro uma variável x com um valor de 5. Temos então uma instrução 'cond' que avalia o valor da variável 'x'. Com base no valor da variável, ele executará o conjunto relevante de instruções.

Resultado

O código acima produz a seguinte saída.

x is 5