Em org-mode
, estou tentando definir uma função, uma variável e, em seguida, atribuindo a outra variável o resultado da chamada de função na primeira variável. No entanto, parece que não posso usar essa nova variável em chamadas de funções subseqüentes.
A inclusão de chamadas de função funciona, mas afetar o valor de uma variável primeiro permitiria uma depuração mais rápida, caso algo desse errado na primeira chamada de função, e evitar duplicação de cálculos potencialmente caros.
MWE: (use (require 'ob-emacs-lisp)
se necessário)
#+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
A expansão do segundo bloco de código mostra:
(let ((res (quote "nil")))
(message res))
o que estou perdendo?
(Isso foi testado no emacs 24.3.1, 24.4 e 24.5, usando a organização 8.2.10)