2
respostas

Jogo Forca - Unable to resolve symbol: jogo

Se eu executar o comando (require '[forca.core :as forca] :reload) logo após lein repl (já na pasta do projeto forca) recebo a seguinte mensagem:

Unable to resolve symbol: jogo in this context, compiling:(forca/core.clj:16:3)

Se eu comentar as linhas da função avalia-chute que chamam jogo, executar (require '[forca.core :as forca] :reload) , descomentar de volta as linhas que chamam jogo e executar novamente (require '[forca.core :as forca] :reload) funciona sem apresentar o erro.

Seria necessário declarar algum protótipo da função jogo? para não ocorrer o erro " Unable to resolve symbol: jogo"

Muito Obrigado, Erik

2 respostas

Erik poste o código completo para que eu possa dar uma olhada.

Erik, tente uma das maneiras abaixo. Vai funcionar ;)

Maneira 1: adicione (declare jogo) logo abaixo da declaração "ns"

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

(declare jogo)

Maneira 2: dentro da função "avalia-chute", adicione "resolve 'jogo", conforme exemplo abaixo

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

Grande abraço