评估这段代码(C-c,C-c):
#+begin_src scheme
(andmap + '(1 2 3) '(4 5 6))
#+end_src导致以下babel错误:
ERROR: Unbound variable: andmap原因: babel使用Guile而不是球拍来评估代码。我如何告诉Babel使用球拍而不是Guile来执行代码?
发布于 2012-02-19 00:52:04
http://terohasu.net/blog/2011-09-08-on-racket-support-in-emacs-org-mode.html描述了一种方法:
在配置Emacs进行设置时,我不熟悉Babel或任何用于在Emacs下评估Scheme代码的解决方案。在研究了Babel和Inferior Lisp之后,我没有设法将Babel配置为调用球拍来评估代码清单。取而代之的是,我求助于将用于Scheme支持的Babel代码(在ob-scheme.el中)基本上替换为以下代码:
(defun babel-execute:scheme (body params) (let* ((tangle (cdr (assoc :tangle params) (script-file (if (string-equal tangle "no") (org-babel-temp-file "org-babel-“".rkt") tangle) (with-temp-file script-file (insert body)) (let* ((pn (org-babel-process-file-name script-file)) (cmd (format“拍子-u %s”pn))(消息cmd) (外壳命令到字符串cmd)
这个解决方案为每个评估创建一个新的球拍实例,因此没有基于Lisp的低级解决方案(或类似方案)那么有效,但它工作得更简单,避免了球拍问题,比如为评估代码指定正确的模块上下文,并且在使用新的球拍实例时,评估上下文始终是“干净的”。
https://stackoverflow.com/questions/9338255
复制相似问题