Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

símbolo update não está presente

E ae pessoal,

Não estou conseguindo rodar o seguinte código:

(update estoque :mochila inc)

O erro retornado é:

CompilerException java.lang.RuntimeException: Unable to resolve symbol: update in this context, compiling:(aula3/aula5.clj:18:1)

O que achei curioso é que meu clojure.core não possui o símbolo update, porém possui o seguinte símbolo:

(defn update-in
  "'Updates' a value in a nested associative structure, where ks is a
  sequence of keys and f is a function that will take the old value
  and any supplied args and return the new value, and returns a new
  nested structure.  If any levels do not exist, hash-maps will be
  created."
  {:added "1.0"
   :static true}
  ([m [k & ks] f & args]
   (if ks
     (assoc m k (apply update-in (get m k) ks f args))
     (assoc m k (apply f (get m k) args)))))

Alguém teve problemas com o símbolo update e soube solucionar ?

1 resposta

Olá Marcos, tudo bem?

Esse problema ocorre porque até executar (update estoque :mochila inc)não tinha nenhum símbolo estoque definido antes de rodar essa linha. Pode ter ocorrido um erro de digitação da palavra estoque. Mas esse erro realmente quer dizer que o símbolo estoque ainda não tinha sido definido.

Será que foi isso que aconteceu?

No aguardo!