Trong org-mode
, tôi đang cố gắng xác định một hàm, một biến và sau đó gán cho một biến khác kết quả của lệnh gọi hàm trên biến đầu tiên. Tuy nhiên, sau đó có vẻ như tôi không thể sử dụng biến mới này trong các cuộc gọi chức năng tiếp theo.
Nội tuyến các lệnh gọi hàm hoạt động, nhưng trước tiên, việc ảnh hưởng đến giá trị đến biến sẽ cho phép gỡ lỗi nhanh hơn trong trường hợp có lỗi xảy ra trong lệnh gọi hàm đầu tiên và để tránh trùng lặp các tính toán đắt tiền.
MWE: (sử dụng (require 'ob-emacs-lisp)
nếu cầ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
Mở rộng khối mã thứ hai cho thấy:
(let ((res (quote "nil")))
(message res))
Tôi đang thiếu gì?
(Điều này đã được thử nghiệm trên emacs 24.3.1, 24.4 và 24.5, sử dụng org 8.2.10)