1

我目前正在学习 Clojure,并且正在评估书中begin_src/end_src块中的示例代码。效果很好,因为 org 为原本不相关的代码片段添加了结构。

当这些部分变得相关时,问题就开始了,即代理章节的示例代码使用了为前两章参考定义的函数。因此,在尝试评估来自新 nrepl 会话的最后一个块时,undefined function会引发错误。然后我必须找到实际定义相关函数的块并对其进行评估。如果它不依赖于其他任何东西,我很幸运。

一种解决方案可能是按顺序重新评估所有源块。这肯定会起作用,但是会不必要地评估大量块,因为它们不在我真正想要评估的块的依赖项中。

我在想也许可以实现一些类似于自动加载的机制,例如:

#+begin_src clojure :defines square
(defn square [x]
  (* x x))
#+end_src

所以当我评估这个块时:

#+begin_src clojure
(square 5)
#+end_src

并出现“无法解析符号:正方形”,org 将尝试查找当前缓冲区中的任何源块是否定义了此函数。

我愿意接受任何其他解决此问题的建议,只要该解决方案允许我有效地将整本书中的代码示例存储在单个 org 文件中。

4

0 回答 0