# 2.4.15 原函数类型

原函数是指由Lisp调用，但是是用 C 编写的函数。原函数也称作为 subr 或者 内置函数 （built-in functions）。（单词 "subr" 源自 "subroutine"--子例程。）绝大多数的原函数被调用时，会先对参数进行求值。而余下的函数被称为特殊表达式（special form）。特殊表达式在调用时，不会对其参数求值。

当调用函数时，函数是不是原函数并不重要。不过，如果你尝试用lisp代码重定义函数时，这点就很重要。原因是，原函数的调用很可能会绕过Lisp，而直接调用 C 中的代码，这样你的重定义可能会失效。因此我们非常不建议原函数的重定义。

术语 函数（function）单纯指Emacs中的所有函数，而不区分Lisp函数和C函数。详情查阅函数类型章节）。

原函数没有读取语法，其打印表示采用哈希表示，其记号是子例程的名称。

```
(symbol-function 'car)        ; 获取符号的函数槽
    => #<subr car>
(subrp (symbol-function 'car)) ; 这是原函数吗？
    => t                       ; 是。
```
