Gelen org-mode
, ben bir işlev, bir değişken tanımlamak için çalışıyor ve sonra başka değişkene ilk değişkeni fonksiyon çağrısının sonucunu atama ediyorum. Ancak, sonraki işlev çağrılarında bu yeni değişkeni kullanamaz gibi görünüyor.
İşlev çağrılarını satır içine almak işe yarar, ancak ilk önce bir değişkenin değerini etkilemek, ilk işlev çağrısında bir şeyler ters gittiğinde daha hızlı hata ayıklamaya ve potansiyel olarak pahalı hesaplamaların çoğaltılmasından kaçınmaya olanak tanır.
MWE: ( (require 'ob-emacs-lisp)
gerekirse kullanın )
#+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
İkinci kod bloğunu genişletmek şunları gösterir:
(let ((res (quote "nil")))
(message res))
Neyi kaçırıyorum?
(Bu, 8.2.10 org kullanılarak 24.3.1, 24.4 ve 24.5 emacs üzerinde test edilmiştir)