我正在尝试编写一个函数,通过以下方式将关键字参数传递给函数
(defun hyphenate (string &key upper lower)
(do ((s (cdr (coerce string 'list)) (cdr s))
(acc (string (char string 0))))
((null s) (cond
(lower (string-downcase acc))
(t (string-upcase acc))))
(cond
((upper-case-p (car s)) (setf acc (concatenate 'string
(concatenate 'string acc "-")
(string (car s)))))
(t (setf acc (concatenate 'string acc (string (car s)))))))))
基本上,如果函数接收到关键字upper,它会调用string-upcase,如果它接收到关键字lower,它会做一个string-downcase。
我只是不知道在我的函数中测试这些参数的适当方法是什么。我不想将它们绑定到一个值。我只想这样称呼他们
(连字符“jobPostings”:上)
如何检查函数调用中是否存在 :upper?它一直告诉我有一个“传递给连字符的未配对关键字”