Common Lisp中是否可以创建通用函数
要专门研究的参数是关键字参数?

例如而不是:

CL-USER> (defgeneric tst (a))
#<STANDARD-GENERIC-FUNCTION TST (0)>
CL-USER> (defmethod tst ((a list))
           (print a))
#<STANDARD-METHOD TST (LIST) {1004ECC903}>

..在参数“a”上指定。
我想要以下内容:
CL-USER> (defgeneric tst (&key a))
#<STANDARD-GENERIC-FUNCTION TST (0)>
CL-USER> (defmethod tst (&key (a list))
           (print a))
#<STANDARD-METHOD TST (LIST) {1004ECC903}>

显然,这与设置
关键字参数的默认值,所以我有点坚持。在实际的代码中,这个问题与我选择的参数布局不同,所以这不是问题(引导起来有点麻烦!),但是如果再次遇到这个问题,我想我最好问问专家!

欢呼全部

最佳答案

不,Common Lisp没有提供。

10-06 01:05