(lispref.info)Primitive Function Type

Next: Byte-Code Type Prev: Lisp Macro Type Up: Programming Types

Primitive Function Type

   A "primitive function" is a function callable from Lisp but written
in the C programming language.  Primitive functions are also called
"subrs" or "built-in functions".  (The word "subr" is derived from
"subroutine".)  Most primitive functions evaluate all their arguments
when they are called.  A primitive function that does not evaluate all
its arguments is called a "special form" (Note: Special Forms.).

   It does not matter to the caller of a function whether the function
is primitive.  However, this does matter if you are trying to
substitute a function written in Lisp for a primitive of the same name.
The reason is that the primitive function may be called directly from
C code.  When the redefined function is called from Lisp, the new
definition will be used; but calls from C code may still use the old

   The term "function" is used to refer to all Emacs functions, whether
written in Lisp or C.  Note: Lisp Function Type, for information
about the functions written in Lisp.

   Primitive functions have no read syntax and print in hash notation
with the name of the subroutine.

     (symbol-function 'car)          ; Access the function cell
                                     ;   of the symbol.
          => #<subr car>
     (subrp (symbol-function 'car))  ; Is this a primitive function?
          => t                       ; Yes.

automatically generated by info2www