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.

-- 
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to