gpt4 book ai didi

lisp - 在 Common Lisp 中确定函数参数列表

转载 作者:太空宇宙 更新时间:2023-11-03 18:33:43 25 4
gpt4 key购买 nike

在给定 common lisp 中的函数对象(或函数的符号)的情况下,是否可以找出函数的参数列表?

最佳答案

这对于每个 CL 实现都是不同的,但是 Swank 包(提供可以在 f.e. Emacs 的迷你缓冲区中显示参数列表的 Slime)将其包装在一个函数中:

* (defun testfn (arg1 arg2 &key (arg3 :a)) (declare (ignore arg1 arg2 arg3)))
TESTFN
* (swank-backend:arglist #'testfn)
(ARG1 ARG2 &KEY (ARG3 :A))

这也适用于方法:

* (defmethod testmethod ((arg1 t) arg2 &key (arg3 :a)) (declare (ignore arg1 arg2 arg3)))
STYLE-WARNING: Implicitly creating new generic function TESTMETHOD.
#<STANDARD-METHOD TESTMETHOD (T T) {1005670231}>
* (swank-backend:arglist #'testmethod)
(ARG1 ARG2 &KEY (ARG3 :A))

获取 Swank 的最简单方法是使用 Quicklisp .

关于lisp - 在 Common Lisp 中确定函数参数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8353661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com