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