【发布时间】:2021-01-06 22:45:28
【问题描述】:
这里是普通 Lisp 新手。我无法理解 Lisp 函数中的参数传递。例如,想象一下 Common Lisp 中的以下函数定义(比如 SBCL):
(defun foo (x <&-keyword goes here> args)
(let ((v (make-hash-table args)))
(setf (gethash "foo" v) x)
v))
我的问题是:在这种情况下,是否有一个 &-keyword 我可以指定将 foo 中的关键字参数传递给 make-hash-table?我已经尝试将 &rest 作为 & 关键字,它总是给我以下警告:
; caught WARNING:
; The function MAKE-HASH-TABLE is called with odd number of keyword arguments.
我还阅读了有关 &allow-other-keys 作为可能的 & 关键字的信息,但似乎没有找到 make-hash-table 在 foo 中如何使用其他键。因此,我很难过。关键字参数可以传递给 Common Lisp 中的内部函数调用吗?如果有,怎么做?
【问题讨论】:
标签: parameter-passing common-lisp