title: Difference between CDR, CAR and REST, FIRST and possible implementation?
body: <p>I'm learning a little bit about functional programming in LISP and here's what I've bumped into: LISP uses CAR, CDR functions as well as FIRST and REST functions. Both related to lists.</p>
  
  <p>From what I've learned so far, there's a difference between these two, but I don't quite see what the difference is.</p>
  
  <p>Could anyone sum this up for me? And how do I eventually implement FIRST/REST using CDR, CAR?</p>
  
  <hr>
  
  <p><strong>Edit</strong>: Since accepted answer mentions documentation, but does not link, here is the link for the documentation for <a href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/acc_carcm_cdr_darcm_cddddr.html" rel="noreferrer">CAR/CDR</a>, here then for <a href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/acc_rest.html" rel="noreferrer">FIRST/REST</a>.</p>
  
  <p>In addition - important note - that linked documentation is "just implementation notes" for CLISP, which is a commonly used environment. Generally it is almost impossible to find "official documentations" for languages such is this one. </p>