在中org-mode
,我试图定义一个函数,一个变量,然后将对第一个变量的函数调用结果分配给另一个变量。但是,看来我不能在后续的函数调用中使用此新变量。
内联函数调用确实可以,但是首先影响变量的值可以加快调试速度,以防万一在第一个函数调用中出现问题,并避免重复可能昂贵的计算。
MWE :((require 'ob-emacs-lisp)
根据需要使用)
#+name: square
#+begin_src emacs-lisp :var x=3
(message (format "%s" (* x x)))
#+end_src
#+RESULTS: square
: 9
#+name: value
: 45
#+name: squaredvalue
#+call: square(x=value)
#+RESULTS: squaredvalue
: 2025
Now I try to reuse this value:
#+begin_src emacs-lisp :var res=squaredvalue
(message res)
#+end_src
#+RESULTS:
: nil
Inlined calls do work:
#+begin_src emacs-lisp :var res=square(value)
(message res)
#+end_src
#+RESULTS:
: 2025
展开第二个代码块将显示:
(let ((res (quote "nil")))
(message res))
我想念什么?
(已使用org 8.2.10在emacs 24.3.1、24.4和24.5上进行了测试)
我认为这与图书馆Babel有关。
—
yi.tang.uni 2015年