code: function reverseList(list){ 
  
     // js re-implementation of 3rd solution from:
     //    http://www.haskell.org/haskellwiki/99_questions/Solutions/5
     function reverseInner( list, reversedAlready ) {
        if( !list ) {
           return reversedAlready;
        }
        
        return reverseInner(tail(list), cons(head(list), reversedAlready))
     }
  
     return reverseInner(list, emptyList);
  }
docs: Reverse the order of a list