小编Bri*_*lli的帖子

检查lisp中是否存在关键字参数

我正在尝试编写一个函数,通过以下方式将关键字参数传递给函数

 (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))))))))) 
Run Code Online (Sandbox Code Playgroud)

基本上,如果函数接收关键字upper,它将调用string-upcase,如果它接收到key down,它将执行string-downcase.

我只是不知道在我的函数中测试这些参数的适当方法是什么.我不想将它们绑定到一个值.我只想这样打电话给他们

(连字符"jobPostings":上)

如何在函数调用中检查是否存在:upper?它一直告诉我有一个"未成对的关键字传递给连字符"

lisp common-lisp

2
推荐指数
1
解决办法
780
查看次数

标签 统计

common-lisp ×1

lisp ×1