diff --git a/contrib/babel/lisp/langs/org-babel-ocaml.el b/contrib/babel/lisp/langs/org-babel-ocaml.el index 107de0c7f..27f6ea117 100644 --- a/contrib/babel/lisp/langs/org-babel-ocaml.el +++ b/contrib/babel/lisp/langs/org-babel-ocaml.el @@ -48,15 +48,19 @@ (defvar org-babel-ocaml-eoe-indicator "\"org-babel-ocaml-eoe\";;") (defvar org-babel-ocaml-eoe-output "org-babel-ocaml-eoe") +(defun org-babel-expand-body:ocaml (body params &optional processed-params) + (let ((vars (second (or processed-params (org-babel-process-params params))))) + (concat + (mapconcat + (lambda (pair) (format "let %s = %s;" (car pair) (cdr pair))) + vars "\n") "\n" body "\n"))) + (defun org-babel-execute:ocaml (body params) "Execute a block of Ocaml code with org-babel." (message "executing ocaml source code block") (let* ((processed-params (org-babel-process-params params)) (vars (second processed-params)) - (full-body (concat - (mapconcat - (lambda (pair) (format "let %s = %s;" (car pair) (cdr pair))) - vars "\n") "\n" body "\n")) + (full-body (org-babel-expand-body:ocaml body params processed-params)) (session (org-babel-prep-session:ocaml session params)) (raw (org-babel-comint-with-output session org-babel-ocaml-eoe-output t (insert (concat (org-babel-chomp full-body) " ;;"))