Ich habe eine Funktion wie dieseWie benutzt man & key und & rest in einem cl-defun togather?
(cl-defun foo (a b c d e &rest f)
nil)
Argumente c
, d
und e
nil
80% der Zeit ist.
Um es sieht besser aus, ich dies tun:
(cl-defun foo (a b &rest f &key c d e &allow-other-keys)
nil)
Wenn c
, d
und e
nicht vorgesehen sind, ist es in Ordnung.
Wenn jedoch einer von ihnen verwendet wird, erhält f
ein falsches Argument. Zum Beispiel:
(foo 1 2 :c 6 3 4 5)
;; ==> expected: a=1, b=2, c=6, f= (3 4 5)
;; ==> real case: a=1, b=2, c=6, f= (:c 6 3 4 5)