org-sbe返回#ERROR

时间:2016-02-21 05:26:42

标签: emacs org-mode

我是org-mode的新手。我刚刚使用el-get安装了最新版本,但我遇到了一个非常烦人的问题。 命令org-sbe似乎不起作用。 以下是我从doc中获取的最小示例:

#+begin_src emacs-lisp :results silent
  (defun fibbd (n) (if (< n 2) 1 (+ (fibbd (- n 1)) (fibbd (- n 2)))))
#+end_src

#+name: fibbd
#+begin_src emacs-lisp :var n=2 :results silent
(fibbd n)
#+end_src

| original | fibbd  |
|----------+--------|
|        0 | #ERROR |
|        1 | #ERROR |
|        2 | #ERROR |
|        3 | #ERROR |
|        4 | #ERROR |
|        5 | #ERROR |
|        6 | #ERROR |
|        7 | #ERROR |
|        8 | #ERROR |
|        9 | #ERROR |
#+TBLFM: $2='(org-sbe "fibbd" (n $1))

正如你所看到的,我一直得到#ERROR
难道我做错了什么? 非常感谢

1 个答案:

答案 0 :(得分:3)

要使其发挥作用,还需要进行一些更改。为方便起见,我在文件变量中禁用了评估确认...

-*- mode: org; org-confirm-babel-evaluate: nil; -*-

#+name: fibbd
#+begin_src emacs-lisp :var n=0
(defun fibbd (n) (if (< n 2) 1 (+ (fibbd (- n 1)) (fibbd (- n 2)))))
(fibbd n)
#+end_src


| original | fibbd |
|----------+-------|
|        0 |     1 |
|        1 |     1 |
|        2 |     2 |
|        3 |     3 |
|        4 |     5 |
|        5 |     8 |
|        6 |    13 |
|        7 |    21 |
|        8 |    34 |
|        9 |    55 |
#+TBLFM: $2='(org-sbe fibbd (n $1))