emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nicholas Patrick <npatrick04@gmail.com>
To: Eric Schulte <schulte.eric@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: Org babel with multiple linked segments of source code
Date: Fri, 25 Mar 2011 09:12:30 -0500	[thread overview]
Message-ID: <AANLkTino+G8n_fUygPAVX411FSh81K9K2PxpGS4VbWov@mail.gmail.com> (raw)
In-Reply-To: <87lj06a677.fsf@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3425 bytes --]

I may try playing around with the sequential sections...since that's how I'm
currently writing the majority of this file.  Most of the pieces of code are
simply defining functions that call other functions or macros and wouldn't
be executed alone.  However, I'm defining other blocks as tests for the
functional sections.  So I might do the following:

#+source: functional-definitions
#+begin_src emacs-lisp
(defn f1
#+end_src

#+source: functional-definitions
#+begin_src emacs-lisp
(defn f2
#+end_src

#+begin_src emacs-lisp
<<functional-definitions>>
(def xyz (f1 (f2 foo))) ; produces bar
#+end_src

#+results:
| bar |

I'm still pretty new to using babel, so I haven't figured out much other
than the basic tangling capability.  Maybe my example could be accomplished
with something like a ':concatenate yes' option on the
functional-definitions blocks.

On Tue, Mar 22, 2011 at 9:57 PM, Eric Schulte <schulte.eric@gmail.com>wrote:

> Hi,
>
> The setup you suggest below is not currently supported.  I fear
> implementing such a system could have some odd semantic extensions into
> other parts of Org-mode code blocks, for example, would it then make
> sense for the results of a code block to be collected over all code
> blocks with that name?  For example,
>
> #+source: test2
> #+begin_src emacs-lisp
>  1
> #+end_src
>
> #+source: test2
> #+begin_src emacs-lisp
>  2
> #+end_src
>
> #+begin_src emacs-lisp :var data=test2
>  data
> #+end_src
>
> #+results:
> | 1 | 2 |
>
> Maybe, but this is certainly not possible under the current setup.
>
> Anyways, back to your use case, maybe it would be equally convenient to
> simply have a number of sequential code blocks in the Org-mode file all
> tangle out, as they will be placed in the tangled file in the order they
> appear in the Org-mode file, so your example below could be changed
> to...
>
> ** tangling example
>   :PROPERTIES:
>    :tangle:   test1.clj
>   :exports:  none
>    :END:
>
> #+begin_src clojure
>  blah
> #+end_src
>
> #+begin_src clojure
>  foo
> #+end_src
>
> #+begin_src clojure
>  bar
> #+end_src
>
> #+begin_src clojure
>  blah
> #+end_src
>
> While not the same as what you suggested this may be sufficient.
>
> Best -- Eric
>
> Nicholas Patrick <npatrick04@gmail.com> writes:
>
> > I'm trying to figure out how to minimize the overhead with using babel to
> > write some segments of code.  I find myself writing short segments of a
> set
> > of functionality, then writing a collector source block which is referred
> to
> > later on in the code... e.g.
> >
> > *********************
> > #+srcname: test1
> > #+begin_src clojure :tangle test1.clj :exports none :noweb yes
> > blah
> > <<test2>>
> > blah
> > #+end_src
> >
> > #+srcname: test2
> > #+begin_src clojure
> > foo
> > #+end_src
> >
> > #+srcname: test2
> > #+begin_src clojure
> > bar
> > #+end_src
> > *********************
> > I'd like to see
> > blah
> > foo
> > bar
> > blah
> >
> > but I see
> > blah
> > foo
> > blah
> >
> > What I'd like to see is a single srcname for the code that just
> concatenates
> > the two different sections when it is referred by <<descriptive-name>>.
> > That way I don't have to come up with different names and collectors and
> so
> > on and so forth.  Maybe I'm just not doing "literate programming" right,
> but
> > when I'm hacking stuff together, I'd like to minimize the housekeeping.
> > e.g.
> >
> > Is there a way to do this?
>
>

[-- Attachment #2: Type: text/html, Size: 4503 bytes --]

  reply	other threads:[~2011-03-25 14:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-22  2:57 Org babel with multiple linked segments of source code Nicholas Patrick
2011-03-23  2:57 ` Eric Schulte
2011-03-25 14:12   ` Nicholas Patrick [this message]
2011-03-29 14:09     ` Eric Schulte

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AANLkTino+G8n_fUygPAVX411FSh81K9K2PxpGS4VbWov@mail.gmail.com \
    --to=npatrick04@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=schulte.eric@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).