emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: John Kitchin <jkitchin@andrew.cmu.edu>
To: Lawrence Bottorff <borgauf@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: What is Babel's relationship with a Lisp REPL? State or stateless?
Date: Fri, 20 Feb 2015 09:13:10 -0500	[thread overview]
Message-ID: <m261aw3c3t.fsf@andrew.cmu.edu> (raw)
In-Reply-To: <CAFAhFSX5ZkMUi1SM3FLU25v2=qxgUMn=1QFwbNDjrBeW+GL-_A@mail.gmail.com>

I think it saves state, and remembers what has been done, at least as
long as emacs is open. If you close emacs, it will forget everything,
and you would have to rerun each block. You could tangle (or selectively
tangle) the blocks out, to get an emacs-lisp file, which might then be a
library you would load or run.

Here is a little example I tried it out on. If you run these blocks in
order you should see the state is saved as if it was a continuous
session.

What do you gain? That is for you to say. you can write emacs lisp and
execute one sexp at a time in an emacs-lisp buffer, and write comments
almost the same way. I like/prefer editing in org-mode for text, and
simple sexps. For really big libraries, I like using org-mode to
organize it into an outline. sometimes I prefer emacs-lisp mode for
editing emacs-lisp code. these are C-c ' apart in org-mode, or if you
have tried the lentic package, you can have separate views of the same
file in different modes.

* elisp

#+BEGIN_SRC emacs-lisp
(setq *some-var* "test")
#+END_SRC
#+RESULTS:
: test


Now some commentary

#+BEGIN_SRC emacs-lisp
*some-var*
#+END_SRC

#+RESULTS:
: test

define something
#+BEGIN_SRC emacs-lisp
(defun test-func ()
  *some-var*)
#+END_SRC

#+RESULTS:
: test-func

#+BEGIN_SRC emacs-lisp
(test-func)
#+END_SRC

#+RESULTS:
: test


Lawrence Bottorff writes:

> If I'm creating an org file in a buffer which has source blocks for, say,
> Lisp, then I can "run" these blocks of Lisp code and Babel will fill in the
> "answer" just below in my buffer. Good. As advertised. But what is really
> happening to this code? Does Babel invoke a Lisp REPL once, do the code,
> print out the results my buffer and go away? Or is this invoked REPL
> somehow persistent, able to remember what has happened before?
>
> With regular Lisp and SLIME, you have a buffer where you write your code
> next to a running REPL that handles the code when you ask it to. It keeps
> "state" and your program grows. But this arrangement is not really literate
> programming. Maybe good comments are possible, but it's not orgmode
> literate programming.
>
> But then again, if Babel doesn't support REPL "state," then what am I
> gaining? Please enlighten me. . . .
>
>
> LB

--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu

  reply	other threads:[~2015-02-20 14:13 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-20 12:54 What is Babel's relationship with a Lisp REPL? State or stateless? Lawrence Bottorff
2015-02-20 14:13 ` John Kitchin [this message]
2015-02-20 16:41 ` Grant Rettke

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=m261aw3c3t.fsf@andrew.cmu.edu \
    --to=jkitchin@andrew.cmu.edu \
    --cc=borgauf@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /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).