Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro ao Executar Exemplo do Exercício Forca

Código

(ns forca.core
  (:gen-class))

(declare jogo avalia-chute)

(def total-de-vidas 6)

(defn perdeu [] (print "Você perdeu"))

(defn ganhou [] (print "Você ganhou!"))

(defn letras-faltantes [palavra acertos]
    (remove (fn [letra] (contains? acertos (str letra))) palavra))

(defn acertou-a-palavra-toda? [palavra acertos] 
    (empty? (letras-faltantes palavra acertos))
)

(defn le-letra! [] (read-line))

(defn acertou? [chute palavra] (.contains palavra chute))

(defn avalia-chute [chute vidas palavra acertos]
    (if (acertou? chute palavra)
        (jogo vidas palavra (conj acertos chute))
        (jogo (dec vidas) palavra acertos)
    )
)

(defn jogo [vidas palavra acertos]
  (if (= vidas 0)
    (perdeu)
    (if (acertou-a-palavra-toda? palavra acertos)
      (ganhou)
      (avalia-chute (le-letra!) vidas palavra acertos)
    )
  )
)

(defn -main
  "I don't do a whole lot ... yet."
  [& args]
  (println "Hello, World!"))

Erro:

(forca/jogo 2 "MELANCIA" #{})

CompilerException java.lang.RuntimeException: No such namespace: forca
1 resposta
solução!

O problema foi "resolvido" na aula seguinte, pois o instrutor explica que o fato da função JOGO, chamar AVALIA-CHUTE, que chamava JOGO, que por sua vez chamava AVALIA-CHUTE... por esse fato, pode-se ter o risco de erro na compilação e/ou execução. O que fiz, foi simplesmente ir para a próxima aula e com as alterações, tudo foi solucionado/explicado.