[Openmcl-devel] consing
Taoufik Dachraoui
dachraoui.taoufik at gmail.com
Tue May 14 03:37:08 PDT 2013
Hi
This is probably simple but I could not figure out the explanation, I hope
that
someone could help me out
CL-USER> (defun fac (n) (if (= n 0) 1 (* n (fac (- n 1)))))
FAC
CL-USER> (time (fac 3))
(FAC 3)
took 0 milliseconds (0.000 seconds) to run.
During that period, and with 1 available CPU core,
0 milliseconds (0.000 seconds) were spent in user mode
0 milliseconds (0.000 seconds) were spent in system mode
6
As you can see, there is no consing when FAC is called
Now, knowing that pushing an element on the stack, (PUSH 1 X) is equivalent
to (SETQ X (CONS 1 X)), and since FAC is using a stack and thus pushing
values on the stack why there is no consing when (FAC 3) is called?
I believe there is a simple explanation but I could not figure it out
Kind regards
Taoufik
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20130514/9d92b523/attachment.htm>
More information about the Openmcl-devel
mailing list