Hi, thank you very much for all the response to my previous mail!
Take this example:
(setq a 6)
(flet (
(prova () (print a))
)
(let ((a 4))
(print a)
(prova)))
(print a)
The output is:
print: 4
prova: 6
print: 6
This is because the function prova isn't in the lexical environment
created by let...
using defvar instead of setq the output is:
print: 4
prova: 4
print: 6
*Why the let hidden the dinamic scope variable "a" (defvar) but not when
this is created by setq? My response is: because let start a new empty
lexical environment that doesn't contain "a" so let can't hidden a
variable that can't see... is correct?
Take this example:
(let ((a 6))
(flet (
(prova () (print a))
)
(print a)
(let ((a 4))
(print a)
(prova)))
(print a)
)
the output is:
print: 6
print: 4
prova: 6
print: 6
This seems to reinforce my previous answer...
Thank you very much and best regards!
Fabrizio.