compiled and interpreted functions
Greeting Lispers!
I just need to sort some things out.
1. Let's say I have this function
(defun make-adder (num)
(lambda (x)
(+ num x)))
When make-adder is a compiled function, the closure it produces is compiled too. When make-adder isn't a compiled function, the closure also isn't compiled.
Question: is it possible for a compiled function to produce an uncompiled closure function?
2. When I inspect an interpreted function in the gui inspector, I can see the 'code' attribute. Is there a way to access that attribute and change the code of the function to a new code?
3. When I do (disassemble ..) to an interpreted function, I can see the machine code. As I got it, disassemble compiles any interpreted function before showing its output. Is it true?
Best,
Art
p.s. Is there a difference between this
(defun make-adder (num)
(lambda (x)
(+ num x)))
and this
(defun make-adder (num)
(function (lambda (x)
(+ num x))))