Thanks for all the responses and explanations.  I am using :results silent to 
prevent printing any results next to the code block.  Using :results output 
replace in #+CALL: block works for R code blocks.  But emacs-lisp code blocks 
are not working.


#+name: calc_half
#+begin_src R :exports code :results silent :var x=0
  x / 2
#+end_src

#+CALL: calc_half(x = 5) :exports results :results output replace

#+RESULTS:
: [1] 2.5

My function call returns call_calc_half[:results value replace](x = 6) 
{{{results(=3=)}}}.

With elisp code block, =#+CALL:= does not work.

#+name: double
#+begin_src emacs-lisp :exports code :results silent :var n=1 
  (* 2 n)
#+end_src

#+CALL: double[:exports results :results output replace](n = 4) 

#+RESULTS:

Now function call returns call_double[:exports results :results output 
replace](n = 3) {{{results(==)}}}


> On Apr 26, 2026, at 5:46 AM, Ihor Radchenko <[email protected]> wrote:
> 
> Christian Moe <[email protected]> writes:
> 
>>> Just incorrect #+CALL syntax.
>>> #+CALL: calc_half[:exports results :results output replace](x = 5)
>> 
>> I tested that too, because I'm never quite sure about "inside" versus
>> "end" header arguments, and retested now. For me, call results still
>> show up as messages when the code block is 'silent', whether I make
>> 'replace' an inside or end argument.
> 
> Here is what I see
> 
>  #+name: calc_half
>  #+begin_src R :exports code :var x=0 :results silent
>    x / 2
>  #+end_src
> 
>  #+CALL: calc_half[:exports results :results output replace](x = 5)
> 
>  #+RESULTS:
>  : [1] 2.5
> 
> All fine.
> 
> -- 
> Ihor Radchenko // yantar92,
> Org mode maintainer,
> Learn more about Org mode at <https://orgmode.org/>.
> Support Org development at <https://liberapay.com/org-mode>,
> or support my work at <https://liberapay.com/yantar92>

Reply via email to