首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在org-babel代码块中区分方案方言?

如何在org-babel代码块中区分方案方言?
EN

Stack Overflow用户
提问于 2012-02-18 11:28:28
回答 1查看 652关注 0票数 2

评估这段代码(C-c,C-c):

代码语言:javascript
复制
#+begin_src scheme
(andmap + '(1 2 3) '(4 5 6))
#+end_src

导致以下babel错误:

代码语言:javascript
复制
ERROR: Unbound variable: andmap

原因: babel使用Guile而不是球拍来评估代码。我如何告诉Babel使用球拍而不是Guile来执行代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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的低级解决方案(或类似方案)那么有效,但它工作得更简单,避免了球拍问题,比如为评估代码指定正确的模块上下文,并且在使用新的球拍实例时,评估上下文始终是“干净的”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9338255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档