emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Library of Babel confusion


From: Lawrence Bottorff
Subject: Re: [O] Library of Babel confusion
Date: Wed, 4 Apr 2018 18:52:35 -0400

The docs have this example:

#+name: square
#+header: :var x=0
#+begin_src python
return x*x
#+end_src

#+call: square(x=6)

...so yes, "return", but with 

(defun myelsquare (x)
   (* x x))

isn't the final thing evaluated what is "returned" with Elisp? AFAIK there is no explicit return with Elisp. #+call can't really call a function, only named blocks of REPL-style calculator snippets?

Also, today I find that a new start of Emacs doesn't load my LOB file, i.e.,

(custom-set-variables
...
 '(org-babel-lob-files (quote ("~/org/worg/library-of-babel.org")))
...

was being blown off, i.e., not populating the org-babel-library-of-babel variable. But today org-babel-lob-injest does seem to work, i.e., it did populate org-babel-library-of-babel. I wonder what's up.




On Tue, Apr 3, 2018 at 4:44 PM, Nicolas Goaziou <address@hidden> wrote:
Lawrence Bottorff <address@hidden> writes:

> 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,

What doesn't work? You call `org-babel-lob-ingest', specify a file, and
it stores all source code blocks in the file for later use.

> Now, in my org file I put this:
>
> #+lob: write(file="jsontest")

This should be #+call: write(...)

>
> 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
>
> After a #+call:... I use C-c C-c to evaluate it. What am I missing
> here?

Your second block defines a function, but doesn't return its results.
"#+call: myelsquare(...)" expects to find a block named "myelsquare",
not an Elisp function named "myelsquare".

Regards,

--
Nicolas Goaziou


reply via email to

[Prev in Thread] Current Thread [Next in Thread]