I tried to determine if Emacs returned object by reference or value, but could not find a clear answer (searching google and Emacs Lisp manual). I guess it must be "by reference", and I just overlooked it somewhere..
For example:
(defun my-get-hash ()
(let ((h (make-hash-table :test 'equal)))
(puthash "a" 1 h)
h))
(let ((h2 (my-get-hash)))
(message (prin1-to-string h2)))
Here the hash h
is created with a let
binding, and then return to the caller. Does the caller receive a reference or a copy of h
?