title: procedures vs. built-in data
body: <p>I'm trying to understand the view that procedures and data are virtually the same in lisp. SICP says that:</p>
  
  <ul>
  <li>the values of numerals are the numbers that they name, </li>
  <li>the values of built-in operators are the machine instruction sequences that carry out the corresponding operations, and </li>
  <li>the values of other names are the objects associated with those names in the environment. </li>
  </ul>
  
  <p>The second stipulation says that "the values of built-in operators are the machine instruction sequences that carry out the corresponding operations." if I wish to change the values thereby changing the machine instructions, like this:</p>
  
  <pre><code>  (define + 2)
  
    (* + 3) ;6
  </code></pre>
  
  <p>it works fine.</p>
  
  <p>Now, the first case stipulates that "the values of numerals are the numbers that they name". If I type</p>
  
  <pre><code>  2
  </code></pre>
  
  <p>The value is the representation of 2 that gets outputted. Now, if I wish to change it, like this:</p>
  
  <pre><code>  (define 2 +) ;bad syntax
  </code></pre>
  
  <p>Why is that?</p>