TL;DR: That is almost correct. `:post' header arg gives fine control of
formatting if needed.
`org-babel-insert-result' formats anything that isn't a string or a list
using "%S". Then it tries hard to turn a list into a "table". Lists that
cannot be made into tables are formatted as strings with "%s\n". However,
various languages have their own formatting principles, so what
`org-babel-insert-result' gets as the `result' is a bit idiosyncratic.
You can get a deeper look at the `result' by pretty printing it with the
aid of a :post header arg. Example:
#+NAME: I-feel-pretty
#+BEGIN_SRC emacs-lisp :results pp
*this*
#+END_SRC
This elisp list is not revised:
#+BEGIN_SRC emacs-lisp :post I-feel-pretty
'(a b c (d . e))
#+END_SRC
#+RESULTS:
: (a b c
: (d . e))
On Sun, 12 Jun 2016, Thomas S. Dye wrote:
I think I'm correct to say that by default a single value result is
output as a scalar, and everything else is converted to an Org mode
table.
--
Kaushal Modi