string - 检查字符串中是否有小写字符

标签 string common-lisp lowercase

我需要返回 True 或 False

  • 如果至少有一个小写字符
  • False没有小写字符

我试过用循环和 lambda 函数来做 像这样的

(defun check-lower-word (word)
    (loop
        for ch across word 
        ((lambda (c) (if (lower-case-p c) return T) ch)
    )
)

如果从未工作过“如果”,我需要 False

最佳答案

通过预定义函数,您可以使用 some ( manual ):

CL-USER> (some #'lower-case-p "AbC")
T
CL-USER> (some #'lower-case-p "ABC")
NIL

loop 语法(manual)也有类似的操作:

CL-USER> (loop for x across "AbC" thereis (lower-case-p x))
T
CL-USER> (loop for x across "ABC" thereis (lower-case-p x))
NIL

最后,请注意 loop 总是在迭代终止而不产生结果时返回 nil,因此 loop 的使用不太简洁:

CL-USER> (loop for x across "AbC" if (lower-case-p x) do (return t))
T
CL-USER> (loop for x across "ABC" if (lower-case-p x) do (return t))
NIL

关于string - 检查字符串中是否有小写字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56265857/

相关文章:

lisp - Atom 上是否有 Common Lisp 的 github markdown 语言标识符?

lisp - lisp 库的良好来源?

common-lisp - 在宏中构建符号时处理可读的情况

vb.net - 将字符从小写转换为大写,反之亦然 VB.Net

java - Java 中的字符测试器(大写 A-Z,小写 a-z,数字 0-9,其他)

c - 字符串数组的部分副本

java - 正则表达式通配符匹配分割与java split方法

python - 根据另一个字符串向字符串添加符号

url-redirection - 将 asp.net core 2.0 url 重定向到小写

string - 如何反转 Dart 中的字符串?