I guess I need more information. For example, what is C-c C-v v doing
exactly? Then C-x C-e? And  M-x (symbol-function 'myelsquare) doesn't work.
Again,

#+name: myelsquare
#+header: :var x=0
#+begin_src emacs-lisp :var x=0
  (defun myelsquare (x)
    (* x x))
#+end_src

is Lisp code where the last thing should be returned. From
library-of-babel.org:

#+name: json
#+begin_src emacs-lisp :var file='() :var url='()
  (require 'json)
  (cond
   (file
    (org-babel-with-temp-filebuffer file
      (goto-char (point-min))
      (json-read)))
   (url
    (require 'w3m)
    (with-temp-buffer
      (w3m-retrieve url)
      (goto-char (point-min))
      (json-read))))
#+end_src

And this calling a sample json-containing file gives

#+call: json(file="jsontest1")

| glossary | (title . example glossary) | (GlossDiv (title . S) (GlossList
(GlossEntry (ID . SGML) (SortAs . SGML) (GlossTerm . Standard Generalized
Markup Language) (Acronym . SGML) (Abbrev . ISO 8879:1986) (GlossDef (para
. A meta-markup language, used to create markup languages such as DocBook.)
(GlossSeeAlso . [GML XML])) (GlossSee . markup)))) |

which is correct, although not in list form. So again I'm looking at elisp
code that is not in the form of a function. So I'm guessing "functions"
cannot be #+call'ed, just "headless" elisp code. So what advantage does LOB
offer?

On Tue, Apr 3, 2018 at 5:39 PM, Berry, Charles <ccbe...@ucsd.edu> wrote:

>
>
> > On Apr 3, 2018, at 1:31 PM, Lawrence Bottorff <borg...@gmail.com> wrote:
> >
> > I've been trying to grok LOB again. So I've cloned the worg git and
> library-of-babel.el is one of the files. org-babel-lob-injest didn't work,
>
>
> Try
>
> M-x org-babel-lob-ingest RET org/worg/library-of-babel.org RET
>
> Don't be a jester, be an ingester. ;-)
>
>
> > so I customized org-babel-lob-files and inserted
> .../worg/library-of-babel.el . . . and it did in fact get added to my
> init.el under the custom-set-variables:
> >
> >  '(org-babel-lob-files (quote ("~/org/worg/library-of-babel.org")))
> >
> > I checked org-babel-library-of-babel variable, and the new things seemed
> to be there, although it's rather mind-bending to know I will be calling
> LOB code that is internally stored inside of an association list.
> >
> > Now, in my org file I put this:
> >
> > #+lob: write(file="jsontest")
>
>
> See (info"(org) Evaluating code blocks")
>
> The proper idiom is
>
>         #+call: write(file="jsontest")
>
> Of course, there needs to be a proper 'write' src block in the file you
> ingested, etc.
>
> >
> > and try C-c C-c on it. Nothing. My minibuffer says "local setup has been
> refreshed". How does one use, call a LOB function? Also, while I'm
> demonstrating my rank noobian-ness, I try this:
> >
> > #+name: myelsquare
> > #+header: :var x=0
> > #+begin_src emacs-lisp
> >   (* x x)
> > #+end_src
> >
> > #+call: myelsquare(x=6)
> >
> > #+RESULTS:
> > : 36
> >
> > but this results in
> >
> > #+name: myelsquare
> > #+header: :var x=0
> > #+begin_src emacs-lisp
> >   (defun myelsquare (x)
> >       (* x x))
> > #+end_src
> >
> > #+call: myelsquare(x=6)
> >
> > #+RESULTS:
> > : myelsquare2
>
>
> Is this *verbatim* ? Did you cut and paste everything (including the
> trailing `2') all at once? If so, I do not get it.
>
> I would have expected
>
> #+RESULTS:
> : myelsquare
>
>  which is the correct behavior.
>
> To see why put point in the myelsquare src block and type C-c C-v v
>
> then move point to the end of the 'preview' buffer and type C-x C-e.
>
> Look at the value echo-ed in the minibuffer.
>
> If it still isn't clear maybe `M-x (symbol-function 'myelsquare)' will
> help.
>
> HTH,
>
> Chuck
>

Reply via email to