3
我想製作最通用的函數,並決定使用鍵作爲參數。 我想使用allow-other-keys
,因爲我想用任何鍵使用該功能。在普通lisp中使用&allow-other-keys
讓我告訴你:
(defun myfunc (a &rest rest &key b &allow-other-keys)
;; Print A
(format t "A = ~a~%" a)
;; Print B if defined
(when b
(format t "B = ~a~%" b))
;; Here ... I want to print C or D or any other keys
;; ??
)
(myfunc "Value of A")
(myfunc "Value of A" :b "Value of B")
(myfunc "Value of A" :b "Value of B" :c "Value of C" :d "Value of D")
我知道rest
是剩餘ARGS,但它有一個數組。它不綁定值c
或d
或者甚至像關聯列表一樣構建它們(即,像做(cdr (assoc 'c rest))
那樣做)
您是否有線索或解決方案?或者我可能走錯了方向?
預先感謝
很抱歉的類型混淆。是的,這是一個清單,你是絕對正確的。我會看看'getf'在我的情況。感謝您的回答。 – SmartyLisp
我仍然感到困惑,因爲'rest'有這樣的值:'(C的D值的值)'但是'(getf rest'c)'或'(getf rest'C)'給我'NIL' – SmartyLisp
好的。 .. 我的錯。 ':C'。傻我。謝謝,@rainer – SmartyLisp