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
