abonnements <abonneme...@thierry-pelle.eu> writes: > Hi, thank you for your answer. > > Your solution is OK but only for the example I gave (2 or 3 > results). In practice I have about 10 results and the number of them > may be variable... Furthermore :vars does not work on my version (I > must use :var x=A :var y=B)...
:vars was just a typo then .... #+NAME: A #+BEGIN_SRC emacs-lisp :results raw (+ 2 2) #+END_SRC #+results: A 4 #+NAME: B #+BEGIN_SRC emacs-lisp :results raw (/ 2 2) #+END_SRC #+results: B 1 #+BEGIN_SRC emacs-lisp (org-element-map (org-element-parse-buffer) 'src-block (lambda (--block) (let ((nm (org-element-property :name --block))) (when nm (let ((val (org-element-property :value --block))) (list nm (eval (car (read-from-string val))))))))) #+END_SRC #+results: | A | 4 | | B | 1 | > Ta. > Thierry > > Hello, > >> I have somethink like that >> >> #+call: gen(A) >> #+results: A >> : 10 >> >> #+call: gen(B) >> #+results: B >> : 20 >> >> Is there a simple mean to aggregate the results in a table, i.e to get >> | A | 10 | >> | B | 20 | >> >> I think some lisp can do that but as a beginner... but as I want to >> learn you can suggest a somewhat complicated solution or a simple idea. >> Thanks. > > you could define a 3rd block C that takes the results from block A and B > as variable via :vars x=A y=B (A and B must be named blocks for this, > use a #+NAME: A line) and then do (list A x B y) in block C and use the > :results format that outputs a list as a table (often it is the default, > otherwise try :results table or so). -- cheers, Thorsten