CompilerException java.lang.RuntimeException: Unable to resolve symbol: - [Clojure]

clojure

Solution

You want to say

(require :reload 'guestbook.models.db)

This reloads this single namespace; if you use `:reload-all` instead, it will also recursively reload all namespaces loaded by `guestbook.models.db`, directly or indirectly.

See `(doc require)` for details.

As for `(:reload 'guestbook.models.db)`:

Keywords in Clojure, when used as functions, attempt to treat their first argument as a map to look themselves up in. For example, `(:foo {:foo 1})` returns `1`. If this argument cannot be so treated, `nil` is returned. Optionally a second argument can be provided, to be returned as the default value in case the keyword fails to find a value corresponding to itself in its first argument (whether it happens to be a non-map or a map which has no entry for this key).

Problem

I have this `save-message` function in `guestbook.models.db` namespace and I am trying to run it in the repl but I get this: ``` guestbook.models.db> (save-message "A" "Hi" ) CompilerException java.lang.RuntimeException: Unable to resolve symbol: save-message in this context, compiling:(/private/var/folders/xc/ypy3lqhj08xg2hjc6g81qwl80000gn/T/form-init7598384514150426113.clj:1:1) ``` I reload and try again and I get the same error ``` guestbook.models.db> (:reload 'guestbook.models.db) nil guestbook.models.db> (save-message "A" "Hi" ) CompilerException java.lang.RuntimeException: Unable to resolve symbol: save-message in this context, compiling:(/private/var/folders/xc/ypy3lqhj08xg2hjc6g81qwl80000gn/T/form-init7598384514150426113.clj:1:1) guestbook.models.db> ``` What am I doing wrong?

Original source