次の方法でキーワード引数を関数に渡す関数を作成しようとしています
(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 にハイフンを付ける)
関数呼び出しで :upper の存在を確認するにはどうすればよいですか? 「ハイフンに渡された対になっていないキーワード」があると私に言い続けます