title: Can you implement any pure LISP function using the ten primitives? (ie no type predicates)
body: <p>This site makes the following claim:
  <a href="http://hyperpolyglot.wikidot.com/lisp#ten-primitives" rel="noreferrer">http://hyperpolyglot.wikidot.com/lisp#ten-primitives</a></p>
  
  <pre>McCarthy introduced the ten primitives of lisp in 1960. All other pure lisp 
  functions (i.e. all functions which don't do I/O or interact with the environment) 
  can be implemented with these primitives. Thus, when implementing or porting lisp, 
  these are the only functions which need to be implemented in a lower language. The 
  way the non-primitives of lisp can be constructed from primitives is analogous to 
  the way theorems can be proven from axioms in mathematics.
  
  The primitives are: atom, quote, eq, car, cdr, cons, cond, lambda, label, apply.</pre>
  
  <p>My question is - can you really do this without type predicates such as <code>numberp</code>? Surely there is a point when writing a higher level function that you need to do a numeric operation - which the primitives above don't allow for. </p>