In org-mode
, sto cercando di definire una funzione, una variabile e quindi assegnare a un'altra variabile il risultato della chiamata di funzione sulla prima variabile. Tuttavia, allora sembra che non sia possibile utilizzare questa nuova variabile nelle chiamate di funzioni successive.
Integrare le chiamate di funzione funziona, ma influire prima sul valore di una variabile consentirebbe un debug più rapido nel caso in cui qualcosa vada storto nella prima chiamata di funzione ed evitare la duplicazione di calcoli potenzialmente costosi.
MWE: (usare (require 'ob-emacs-lisp)
se necessario)
#+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
L'espansione del secondo blocco di codice mostra:
(let ((res (quote "nil")))
(message res))
Cosa mi sto perdendo?
(Questo è stato testato su emacs 24.3.1, 24.4 e 24.5, usando org 8.2.10)