में 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))
मैं क्या खो रहा हूँ?
(यह एमआर 8.2.10 का उपयोग करके एमएसीएस 24.3.1, 24.4 और 24.5 पर परीक्षण किया गया है)