我需要返回 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/