Alan Schmitt <alan.schmitt <at> polytechnique.org> writes:

> 
> Hello,
> 
> I have several babel blocks that each work well, but I'm now trying to
> chain them to build some bigger functionality out of them. I'm having
> trouble finding out how to pass arguments between blocks. Here is
> a small example:
> 
> --8<---------------cut here---------------start------------->8---
> #+name: test1
> #+begin_src emacs-lisp :var x="foo"
> x
> #+end_src
> 
> #+name:test2
> #+begin_src emacs-lisp :var z="bar" :var y=test1(x=z)
> y
> #+end_src
> 
> #+call: test2(z="baz")
> --8<---------------cut here---------------end--------------->8---
> 
> Unfortunately this does not work: the evaluation of block `test2' fails
> by telling me `z' does not exist.
> 
> How can I execute block `test1' from block `test2' by passing an
> argument that is one from test2?

This is not pretty, but it works:

#+name:test2 
#+begin_src emacs-lisp :var z="bar"
  (let ((y (org-sbe test1 (x (intern z)))))
    y)
#+end_src


HTH,

Chuck



Reply via email to