emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] ob-clojure will error result when contains comment


From: Tim Cross
Subject: Re: [O] ob-clojure will error result when contains comment
Date: Fri, 14 Jul 2017 10:21:33 +1000

Your second block can't run in a repl unless you have additional definitions you are not showing here. The error messages are complaining that 

1. There is no function called sum. Clojure does not have a sum function and your not defining one in this block, so that makes perfect sense.

2. The function avg1 is unbound. This also makes perfect sense because the line where you try to bind avg1 is the same line where the error about sum is generated, which means that binding failed. 

The additional settings you are using might be contributing to your problems - I don't know I don't have any additional default header args. I would remove them and only set them once you know you have things working with normal/standard src block settings. 

The fact I cannot reproduce your errors with a stock setup indicates the problem is still something with your environment.  

On 13 July 2017 at 22:23, address@hidden <address@hidden> wrote:
I run the both blocks fine in CIDER REPL, that's weird.
I have the following special settings for ob-clojure.
```elisp
(add-to-list 'org-babel-default-header-args:clojure
             '(:eval . "yes"))
(add-to-list 'org-babel-default-header-args:clojure
             '(:results . "value pp"))
(add-to-list 'org-babel-default-header-args:clojure ; for Clojure `dotimes' etc.
             '(:show-process . "no"))
(add-to-list 'org-babel-default-header-args:clojure
             '(:noweb . "yes"))
```


[stardiviner]           <Hack this world!>      GPG key ID: 47C32433
IRC(freeenode): stardiviner                     Twitter:  @numbchild
Key fingerprint = 9BAA 92BC CDDD B9EF 3B36  CB99 B8C4 B8E5 47C3 2433
Blog: http://stardiviner.github.io/

On Thu, Jul 13, 2017 at 4:48 PM, Tim Cross <address@hidden> wrote:

I think there is something wrong with your environment and your second
block is not legal code. If you run your second block directly in a
clojure repl, you will get the same errors, which means it isn't an org issue.

Executing your examples with org from master branch I get

#+BEGIN_SRC clojure
(+ 1 1) ;=> 2
#+END_SRC

#+RESULTS:
: 2

#+BEGIN_SRC clojure :results value
(def sum1 #(reduce + %))
(def avg1 #(/ (sum %) (count %)))

(defn stats
  [numbers]
  (map #(% numbers) [sum1 count avg1]))

(stats [3 4 10])

(stats [80 1 44 13 6])

#+END_SRC

#+RESULTS:
: #'user/sum1#'user/statsclass clojure.lang.Compiler$CompilerExceptionclass java.lang.IllegalStateExceptionclass java.lang.IllegalStateExceptionclass clojure.lang.Compiler$CompilerExceptionclass java.lang.IllegalStateExceptionclass java.lang.IllegalStateExceptionCompilerException java.lang.RuntimeException: Unable to resolve symbol: sum in this context, compiling:(/tmp/form-init6637865895670060372.clj:2:15)
: IllegalStateException Attempting to call unbound fn: #'user/avg1  clojure.lang.Var$Unbound.throwArity (Var.java:43)
: IllegalStateException Attempting to call unbound fn: #'user/avg1  clojure.lang.Var$Unbound.throwArity (Var.java:43)

I'm not sure why the version of ob-clojure.el is not yet in the org or
org-plus-contrib packages - Does master only become maint after major
version releases?

Note also, there appears to be an issue with most recent versions of
cider when you do cider-jack-in and your not inside a project. The
issues seem to relate mainly to clj-refactor, but there could be other
problems. Again, highly recommend running your cider inside a clojure
project.

Tim

address@hidden writes:

> Here is the examples:
>
> #+BEGIN_SRC clojure
> (+ 1 1) ;=> 2
> #+END_SRC
>
> #+RESULTS:
> : class clojure.lang.LispReader$ReaderExceptionclass
> java.lang.RuntimeExceptionRuntimeException EOF while reading, starting at
> line 1  clojure.lang.Util.runtimeException (Util.java:221)
>
> #+BEGIN_SRC clojure :results value
> (def sum1 #(reduce + %))
> (def avg1 #(/ (sum %) (count %)))
>
> (defn stats
>   [numbers]
>   (map #(% numbers) [sum1 count avg1]))
>
> (stats [3 4 10])
> ;; => (17 3 17/3)
>
> (stats [80 1 44 13 6])
> ;; => (144 5 144/5)
> #+END_SRC
>
> #+RESULTS:
> : class clojure.lang.LispReader$ReaderExceptionclass
> java.lang.RuntimeExceptionRuntimeException EOF while reading, starting at
> line 1  clojure.lang.Util.runtimeException (Util.java:221)
>
>
> [stardiviner]           <Hack this world!>      GPG key ID: 47C32433
> IRC(freeenode): stardiviner                     Twitter:  @numbchild
> Key fingerprint = 9BAA 92BC CDDD B9EF 3B36  CB99 B8C4 B8E5 47C3 2433
> Blog: http://stardiviner.github.io/


--
Tim Cross




--
regards,

Tim

--
Tim Cross


reply via email to

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