是否有Common Lisp函数用于获取参数和返回数据类型?

时间:2019-04-24 18:17:28

标签: common-lisp introspection

我正在用Common Lisp编写一个应用程序,该应用程序有时必须处理数据类型。简而言之,我有一个列表,其中包含可能的函数供您选择,在我随机选择一个函数之后,我需要查找其他函数来填充参数,以便该函数的返回类型与参数的类型匹配。是否有一个函数可以返回带有预期参数和返回类型的列表?

如果有帮助,我正在Ubuntu上使用SBCL 1.4.16。我基本上是在寻找类似DESCRIBE的东西,但这会返回一个列表或与类型相似的东西。

我尝试手动进行操作,但这意味着每次都会很累,而且我正在寻找一个更加自动化的过程,在该过程中,我只给它指定一个函数的符号,然后返回该列表。我也不想解析DESCRIBE的输出。

例如,以函数foo为例,该函数在提供给DESCRIBE时具有以下输出:

Derived type: (FUNCTION (NUMBER NUMBER) (VALUES NUMBER &OPTIONAL))

我想代替:

(NUMBER NUMBER (VALUES NUMBER &OPTIONAL))

作为返回值。

0 个答案:

没有答案