ob-scheme has a bug
In Org Babel, when the actual parameter to a :var header argument is a list, or a table, and your language is a Lisp, you get a list:
#+NAME: foo - 1 - 2 - 3 #+BEGIN_SRC elisp :var xs=foo xs #+END_SRC #+RESULTS: | 1 | | 2 | | 3 |
Except that when using Scheme, you don't– that code errors-out. The *Geiser Messages* window tells the tale:
INFO: REQUEST: <10>: ,geiser-eval #f (begin (define xs ((1) (2) (3))) xs ) () INFO: RETORT: ((error (key . retort-syntax)) (output . "ice-9/boot-9.scm:1705:22: In procedure raise-exception: Wrong type to apply: 1
The list isn't being quoted correctly.
tusharhero also found this just last month. Ihor Radchenko promptly fixed it in the Org Mode code base, but I just re-built my Emacs from source yesterday morning and the new code hand't landed there, yet.
In the meantime, you can patch it like so:
(defun patch-org-babel-scheme-expand-header-arg-vars (vars) "Expand :var header arguments given as VARS." (mapconcat (lambda (var) (format "(define %S (quote %S))" (car var) (cdr var))) vars "\n")) (advice-add 'org-babel-scheme-expand-header-arg-vars :override #'patch-org-babel-scheme-expand-header-arg-vars)