ใน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)