emacs-orgmode
[Top][All Lists]
Advanced

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

[O] Re: [Orgmode] Possible Calc support for Org-Babel?


From: Eric Schulte
Subject: [O] Re: [Orgmode] Possible Calc support for Org-Babel?
Date: Tue, 01 Mar 2011 10:34:07 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Eric S Fraga <address@hidden> writes:

> "Eric Schulte" <address@hidden> writes:
>
>> Eric S Fraga <address@hidden> writes:
>
> [...]
>
>>>
>>> Further on this, any suggestions on how to pass a vector variable to
>>> calc using babel?  I tried
>>>
>>> #+begin-src org
>>>   #+begin_src calc :var y=[1 2 3]
>>> 3 y
>>>   #+end_src
>>> #+end_src
>>>
>>> but get an error that says
>>>
>>> : Bad format in variable contents: Expected a number
>>>
>>> I've tried putting the vector in quotes but that doesn't help either.
>>> Is this maybe not possible?
>>>
>>
>> With the newest version of Org-mode, I'm now getting the following
>> output.
>>
>> #+begin_src calc :var y=[1 2 3]
>>   3 y
>> #+end_src
>> #+results:
>> : (3, 6)
>>
>> Does this look correct?
>>
>> Best -- Eric
>
> This does not look correct: assuming my knowledge of calc is correct,
> the result should be the scalar 3 multiplied by each of the vector
> elements.  I don't understand how =(3, 6)= can be the output of =3 y=...
>
> The strange thing is that this doesn't work at all for me (with git as
> of a few minutes ago): I still get the error message
>
> : byte-code: Bad format in variable contents: Expected a number
>
> However, if I put the vector in double quotes, it works:
>
>   #+begin_src calc :var y="[1 2 3]"
> 3 y
>   #+end_src
>
>   #+results:
>   : [3, 6, 9]
>
> *but* if I subsequently remove the double quotes, it doesn't work and if
> put them back, it no longer works either.  I am confused...  there's
> like a hysteresis loop in org babel :(
>
> Any suggestions on how to debug this are welcome, of course.

Oh, I just got an even stranger result, with the latest from git...

#+begin_src calc :var y=[1 2 3]
  3 y
#+end_src

#+results:
: 3 hline

something is most certainly wrong...

Alright, I've made two changes, first, it is now possible to pass elisp
vectors through to code blocks, e.g.,

#+begin_src emacs-lisp :var data=[1 2 3]
  (elt data 1)
#+end_src

#+results:
: 2

Second, I've added a slightly hackey but seemingly necessary
post-processing step to a call to calc-eval in ob-calc to remove quotes
from vectors.  This allows vector processing to take place---at least as
far as my limited calc knowledge is concerned.  For example;

#+begin_src calc :var y=[1 2 3]
  3 y
#+end_src

#+results:
: [3, 6, 9]

Hope this helps -- Cheers -- Eric



reply via email to

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