>>> >>> Much clearer, but not yet crystal-clear for me... >>> >>> Let me explain. AFAICT, there were 5 possibles values of the ":colnames" >>> header argument: >>> >>> - no header argument :: (default for all languages but Emacs Lisp) >>> - ":colnames no" :: (default for Emacs Lisp code blocks) >>> - ":colnames yes" :: Tells Org Babel that your first row contains column >>> names. >>> - ":colnames <LIST>" :: Specifies to use <LIST> as column names. >>> - ":colnames nil" :: Same as ":colnames yes". >>> >>> Right? >> >> Almost, values 1 (none) and 5 (nil) are the same. > > I don't share your view about this last statement. > > ** Input table > > #+name: unset-colnames-example-input > | a | b | > |---+---| > | 1 | 2 | > | 3 | 4 | > > ** Having no =:colnames= header argument (case 1) > > Same results for R and sh code blocks (first good news ;-)) -- I'm avoiding, > on purpose, testing with Emacs Lisp... > > #+begin_src R :var data=unset-colnames-example-input > data > #+end_src > > #+results: > | 1 | 2 | > | 3 | 4 | > > #+begin_src sh :var data=unset-colnames-example-input > echo "$data" > #+end_src > > #+results: > | 1 | 2 | > | 3 | 4 | >
Looks good. > > ** Using =:colnames nil= header argument (case 5) > > Once again, R and sh blocks do produce the same results... > > #+begin_src R :var data=unset-colnames-example-input :colnames nil > data > #+end_src > > #+results: > | a | b | > |---+---| > | 1 | 2 | > | 3 | 4 | > > #+begin_src sh :var data=unset-colnames-example-input :colnames nil > echo "$data" > #+end_src > > #+results: > | a | b | > |---+---| > | 1 | 2 | > | 3 | 4 | > > ... but they are _not_ equivalent to the "no header argument" (case 1). > As I believe I mentioned "nil" on a header argument is not interpreted as the lisp literal `nil'. To pass an empty argument to a code block you should do ":colnames '()", an obscure syntax for an obscure thing. > > ** Using =:colnames yes= header argument (case 3) > > On the contrary, case 5 is equivalent to the case 3: same results as > ":colnames yes". > > #+begin_src R :var data=unset-colnames-example-input :colnames yes > data > #+end_src > > #+results: > | a | b | > |---+---| > | 1 | 2 | > | 3 | 4 | > > #+begin_src sh :var data=unset-colnames-example-input :colnames yes > echo "$data" > #+end_src > > #+results: > | a | b | > |---+---| > | 1 | 2 | > | 3 | 4 | > Because the "nil" you specified above is just treated as a string. You get the same thing with. #+begin_src sh :var data=unset-colnames-example-input :colnames sure echo "$data" #+end_src #+RESULTS: | a | b | |---+---| | 1 | 2 | | 3 | 4 | Cheers, -- Eric Schulte http://cs.unm.edu/~eschulte