函数使用并且是地图的一部分(循环依赖?)

Function uses and is part of map (circular dependency?)

我正在写一个迷你 shell 的东西是为了好玩,我正在尝试定义一个命令映射,其中一个命令是 helphelp 应该打印所有可用的命令,我(尝试)通过遍历 commands 映射的键来执行此操作,但是由于 help 是它的一部分,无论我使用哪个命令定义它们时,我总是收到 Use of undeclared variable- 警告。 我该如何解决?

(def commands {:help help})

(defn help []
  (echo! "The available commands are:")
  (doseq [available-command (keys commands)]
    (echo! (name available-command))))

添加

(declare help)

开头。