I think so. Here's *Messages* after (def ^:dynamic *state* {}) ... org-babel-execute:clojure Evaluate this clojure code block (state) on your system? (y or n) executing Clojure code block (state)... ("" "#'user/*state*")
On Fri, Jan 13, 2012 at 2:48 PM, Eric Schulte <eric.schu...@gmx.com> wrote: > Alright, > > if you load ob-clojure.el and then evaluate the following to over-ride > the existing definition of `org-babel-execute:clojure' does clojure code > evaluation work? > > (defun org-babel-execute:clojure (body params) > "Execute a block of Clojure code with Babel." > (require 'slime) > (with-temp-buffer > (insert (org-babel-expand-body:clojure body params)) > ((lambda (result) > (let ((result-params (cdr (assoc :result-params params)))) > (if (or (member "scalar" result-params) > (member "verbatim" result-params)) > result > (condition-case nil (org-babel-script-escape result) > (error result))))) > (slime-eval > `(swank:eval-and-grab-output > ,(buffer-substring-no-properties (point-min) (point-max))) > (cdr (assoc :package params)))))) > > Thanks, > > Andrew Cheng <ache...@gmail.com> writes: > >> I passed the question along to Phil Hagelberg in that Clojure google >> group thread. His reply: >> >> "Yes, clojure-test-mode uses both slime-eval and slime-eval-async; he >> should pick one of these like so: >> >> (defun clojure-test-eval (string &optional handler) >> (slime-eval-async `(swank:eval-and-grab-output ,string) >> (or handler #'identity))) >> >> (defun clojure-test-eval-sync (string) >> (slime-eval `(swank:eval-and-grab-output ,string))) >> >> Actually swank:interactive-eval-region and friends are not elisp >> functions; they are Clojure functions." >> >> (... end of reply) In case it helps, Stuart Sierra says he got >> org-babel and clojure working together. His dotfiles are at >> https://github.com/stuartsierra/dotfiles >> >> On Fri, Jan 13, 2012 at 1:09 AM, Eric Schulte <eric.schu...@gmx.com> wrote: >>> I personally no longer use Clojure (having graduated to Common Lisp :)) >>> so I'm not abreast of the current Clojure environment. >>> >>> The only function ob-clojure uses from swank-clojure is >>> `swank:interactive-eval-region' (used with `slime-eval') in the >>> `org-babel-execute:clojure' function. Which function would now be used >>> to evaluate a region of clojure code? Would `slime-eval-region' >>> suffice? >>> >>> Andrew Cheng <ache...@gmail.com> writes: >>> >>>> ------------------------------------------------------------------------ >>>> >>>> Phil Hagelberg has said that the swank-clojure elisp package has been >>>> deprecated and should not be used [1]. My version of ob-clojure.el >>>> requires swank-clojure. If I don't have the swank-clojure package, I >>>> get "org-babel-execute:clojure:Cannot open load file: swank-clojure". >>>> If I follow the instructions at [2] and get the swank-clojure package, >>>> I get past this error. Is org using a deprecated package, and is this >>>> a bug? Thanks in advance. >>>> >>>> [1] https://groups.google.com/forum/#!starred/clojure/HT8wixvD3GE >>>> [2] http://lists.gnu.org/archive/html/emacs-orgmode/2011-12/msg00629.html > > -- > Eric Schulte > http://cs.unm.edu/~eschulte/