如何访问Lisp符号函数单元

如何访问Lisp符号函数单元,lisp,symbols,Lisp,Symbols,如果我创建这个函数 (defun a (&rest x) x) 我有一个新函数,它模仿了list函数。正如我所读到的,我对符号a的“功能单元”做了一些修改。在我创建和评估上面的函数之前,我会得到一个 Symbol’s function definition is void: a 如果我想试试像(a'b)这样的东西。好。现在,有没有一种方法可以准确地看到这些符号单元包含什么,它们如何保持plist、值,在我的例子中还有函数,例如它们的数据结构,以及它们如何连接到符号?我听说你实

如果我创建这个函数

(defun a (&rest x)
    x)
我有一个新函数,它模仿了
list
函数。正如我所读到的,我对符号
a
的“功能单元”做了一些修改。在我创建和评估上面的函数之前,我会得到一个

Symbol’s function definition is void: a

如果我想试试像
(a'b)
这样的东西。好。现在,有没有一种方法可以准确地看到这些符号单元包含什么,它们如何保持plist、值,在我的例子中还有函数,例如它们的数据结构,以及它们如何连接到符号?我听说你实际上可以进入这些符号单元并操纵它们。我使用的是elisp,但是任何关于这方面的Lisp知识都将不胜感激。

您想看看
符号函数
符号plist
符号值
符号宏展开
符号宏小集

在您的示例中:

(symbol-function 'a) =>
#<FUNCTION A (&REST X) (DECLARE (SYSTEM::IN-DEFUN A)) (BLOCK A X)>
(符号函数“a)=>
#

您要查看
符号函数
符号plist
符号值
符号宏展开
符号宏小集

在您的示例中:

(symbol-function 'a) =>
#<FUNCTION A (&REST X) (DECLARE (SYSTEM::IN-DEFUN A)) (BLOCK A X)>
(符号函数“a)=>
#

在Common Lisp中,可以使用函数
description
获取有关符号的信息:

* (defun a (&rest x)
    x)
A
* (describe 'a)
COMMON-LISP-USER::A
  [symbol]

A names a compiled function:
  Lambda-list: (&REST X)
  Derived type: (FUNCTION * (VALUES LIST &OPTIONAL))
  Source form:
    (LAMBDA (&REST X) (BLOCK A X))

在Common Lisp中,可以使用函数
description
获取有关符号的信息:

* (defun a (&rest x)
    x)
A
* (describe 'a)
COMMON-LISP-USER::A
  [symbol]

A names a compiled function:
  Lambda-list: (&REST X)
  Derived type: (FUNCTION * (VALUES LIST &OPTIONAL))
  Source form:
    (LAMBDA (&REST X) (BLOCK A X))