В 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))
Що я пропускаю?
(Це було протестовано на emacs 24.3.1, 24.4 та 24.5, використовуючи org 8.2.10)