| Looking Around in our Game World | 
  
    | The first command we'd want to have is one that tells us
      about the location we're standing in. So what would a function
      need to describe a location in a world? Well, it would need to
      know the location we want to describe and be able to look at a 
      map and find that location on the map. Here's our function, and 
      it does exactly that: | 
  
    | 
  (defun describe-location (location map)
    (second (assoc location map)))
 | 
  
    | The word defun means, as you might expect, that we're 
      defining a function. The name of the function is 
      describe-location and it takes two parameters: a location 
      and a map. These variables are local parameters of a function 
      and hence unrelated to the global location 
      and map variables. Note that functions in 
      Lisp are often more like functions in math than in other 
      programming languages: If you can remember back to your 
      pre-algebra class, a math function is just a relationship 
      between a bunch of inputs (called the domain) to an output 
      (called the range.) In math, you would never have a function 
      that pops up a message box or prints stuff for the user to read - 
      Our function describe-location is a lot like that, because 
      it is a function that just calculates a value (in this case, the 
      description of a location on our map.) Let's imagine our 
      location is in the living-room (which, indeed, it is...) | 
  
    | << begin
      < previous - 
      next >
      end >> |