Newbie Scheme questions about evaluation...
chris at seberino.org
chris at seberino.org
Sun Jan 13 21:04:10 PST 2008
I'm trying to understand first few pages of SICP where they explain
Scheme basics and had some newbie questions about evaluation....
** First of all, whenever you define a new function, the function's name and
function's code are stored in the "global environment". I thought
functional programming meant you weren't allowed to have any state. Yet,
modifying a "global environment" means changing state!?!?!?
** Does the evaluation of functions return some mysterious type of object?
What the heck is going on? For example, look at evaluation of "+"...
1 ]=> +
;Value 11: #[arity-dispatched-procedure 11]
** Also, what is the type of "define"? You cannot evaluate "define" so it
can't be a regular function.
1 ]=> define
;Syntactic keyword may not be used as an expression: ()
;To continue, call RESTART with an option number:
; (RESTART 1) => Return to read-eval-print level 1.
More information about the KPLUG-LPSG
mailing list