首页 > 解决方案 > 接受数字或字符

问题描述

我知道我可以用它(every #'digit-char-p str)来检查每个字符是数字还是(every #'alpha-char-p str)字符。问题是如果单词包含字母或数字但不包含 + 等符号,我想接受。Hello1 应该返回 true 但不是 Hello1-。有谁知道该怎么做?

标签: stringlispcommon-lispclisp

解决方案


every的第一个参数是一个函数(实际上是一个函数指示符):你可以把任何你想要的函数放在那里。在这种情况下,正如评论中所提到的,有一个由语言定义的函数可以执行您想要的操作,但如果没有,您可以编写一个:

(every (lambda (c) (or (digit-char-p c) (alpha-char-p c))) ...)

(every (lambda (c) (and (explodablep c) (green c))) ...)。或者你想要的任何东西。


推荐阅读