#+name: pascals_triangle #+begin_src python :var n=5 :exports none :return pascals_triangle(5) :results vector def pascals_triangle(n): if n == 0: return [[1]] prev_triangle = pascals_triangle(n-1) prev_row = prev_triangle[n-1] this_row = map(sum, zip([0] + prev_row, prev_row + [0])) return prev_triangle + [this_row] #+end_src #+name: padded_pascals_triangle #+begin_src emacs-lisp :var data=pascals_triangle (let ((max-length (apply #'max (mapcar #'length data)))) (mapcar (lambda (row) (append row (make-vector (- max-length (length row)) "") nil)) data)) #+end_src #+begin_src R :var data=padded_pascals_triangle data #+end_src #+RESULTS: | 1 | nil | nil | nil | nil | nil | | 1 | 1 | nil | nil | nil | nil | | 1 | 2 | 1 | nil | nil | nil | | 1 | 3 | 3 | 1 | nil | nil | | 1 | 4 | 6 | 4 | 1 | nil | | 1 | 5 | 10 | 10 | 5 | 1 |