Not sure if you know Clojure, but here's what I've been toying with: #+name: my-test #+begin_src clojure :var i=[1 2] (map inc i) #+end_src #+RESULTS: my-test | 2 | 3 | looks good, but then #+name: myfun1 #+begin_src clojure (defn myfun1 [ ] [8 9]) #+end_src #+begin_src clojure :var i=myfunc1 (map inc i) #+end_src doesn't do anything, i.e., it doesn't process the myfunc1 and provide the vector [8 9] This elisp code works, though: #+name: mylist1 #+begin_src emacs-lisp (defun mylist1 () (list 1 2 3 4)) #+end_src then #+begin_src emacs-lisp :var myx=(mylist1) (mapcar '1+ myx) #+end_src #+RESULTS: | 2 | 3 | 4 | 5 | Note how I put mylist1 in parens. Without produced odd output #+RESULTS: | 110 | 122 | 109 | 106 | 116 | 117 | 50 | . . . which is literally taking the ascii letters of the word "mylist1" and incrementing them. (Too much fun. . . ). What might be wrong with my Clojure attempt? I've tried (myfun1), myfun1, and myfun1() gives an error. On Tue, Sep 20, 2016 at 3:33 PM, Thomas S. Dye wrote: > Aloha Lawrence, > > Lawrence Bottorff writes: > > > So I can run code for a REPL-type language like Clojure in a babel code > > block and get "results," e.g., a Clojure code block takes in a vector of > > mappings and produces new "results": > > > > #+RESULTS[abc5c51bb569a82c19c4eea1c385c74e839922c7]: > > symmetrize-body-parts-test > > | :name | head | :size | 3 | > > | :name | left-eye | :size | 1 | > > | :name | right-eye | :size | 1 | > > | :name | left-ear | :size | 1 | > > . . . > > > > but could I generate results that aren't just static output listed after > a > > #+RESULTS tag, rather, embedded in a newly created babel code block? I'd > > like such output "initialized" as far as the running REPL is concerned > too. > > Is it possible to generate new code/data that is immediately known to the > > REPL session? Any examples don't have to be Clojure. > > You can use the :session header argument which will give you access to > any variables created during the session: > > http://orgmode.org/worg/org-contrib/babel/languages/ob- > doc-clojure.html#orgheadline13 > > You can pass the function results to a variable argument, which makes > possible chaining (see http://www.jstatsoft.org/v46/i03): > > #+header: :var x=myfunc(2) > > You can also embed and call a function in a source code block using noweb > syntax: > > http://orgmode.org/worg/org-contrib/babel/intro.html#literate-programming > > hth, > Tom > > -- > Thomas S. Dye > http://www.tsdye.com >