[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] How do I chain babel blocks with arguments?
From: |
Charles Berry |
Subject: |
Re: [O] How do I chain babel blocks with arguments? |
Date: |
Wed, 16 Apr 2014 20:49:43 +0000 (UTC) |
User-agent: |
Loom/3.14 (http://gmane.org/) |
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