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>