[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [Babel] Lisp error: (wrong-type-argument listp hline)
From: |
Sebastien Vauban |
Subject: |
Re: [O] [Babel] Lisp error: (wrong-type-argument listp hline) |
Date: |
Tue, 24 Sep 2013 10:43:07 +0200 |
User-agent: |
Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3.50 (windows-nt) |
Hi Eric,
Eric Schulte wrote:
> I think you're confused by headers which are re-added by the colnames
> machinery.
Blush! I mixed the two in my head, yes.
> See the following which returns scalar output avoiding any colnames
> post-processing.
Why are you talking of *post* processing machinery for colnames?
The documentation[1] says that ":colnames no" means "no column name *pre*
processing takes place."
I may miss something important here.
> #+Property: results scalar
>
> #+name: table
> | Key | Value |
> |-----+-------|
> | ABJ | 1 |
> | DEK | 2 |
>
> #+begin_src emacs-lisp :var data=table :hlines no
> data
> #+end_src
>
> #+RESULTS:
> : (("Key" "Value") ("ABJ" 1) ("DEK" 2))
>
> #+begin_src emacs-lisp :var data=table :hlines yes
> data
> #+end_src
>
> #+RESULTS:
> : (("Key" "Value") hline ("ABJ" 1) ("DEK" 2))
>
>> * Set :hlines to "yes"
>>
>> `:hlines yes' should leave the horizontal line, but generates an error.
>>
>> #+begin_src emacs-lisp :var data=table :results output :hlines yes
>> (mapc (lambda (item) (princ (format "UPDATE dim SET val=%s WHERE
>> code='%s'\n"
>> (nth 1 item) (nth 0 item))))
>> data)
>> #+end_src
>
> This is not a babel error, this is an error in your code block body,
> which assumes that every element of `data' will be a list. The symbol
> `hline' is not a list.
OK, that now becomes clear to me!
>> Finally, how am I then supposed to *ignore the header line*? By adding
>>
>> #+begin_src emacs-lisp
>> (setq table (cdr table))
>> #+end_src
>>
>> ?
>>
>> Do I have to do that explicitly in my code block, or is there an option for
>> telling that to Babel?
>
> Use the :colnames processing to strip the headings.
>
> #+begin_src emacs-lisp :var data=table :colnames yes
> data
> #+end_src
>
> #+RESULTS:
> : (("ABJ" 1) ("DEK" 2))
I always wondered why emacs-lisp is the _only_ language with ":colnames no" as
its default. Is there a reason therefore? If no really good reason, could we
suppress that?
Best regards,
Seb
--
Sebastien Vauban
[1] http://orgmode.org/org.html#colnames