简单的问题,对于实际使用方案的人来说简单的答案。如何判断变量是否是字母表中的字母?
我认为它是这样的(字母?x),其中x是某种不定型。谁能告诉我可以使用什么布尔函数?
编辑:
我怎么能做出这样的东西:(somFunction-isALetter?a) 回归:#t
a不是变量。
答案 0 :(得分:4)
在Racket中,char-alphabetic?
函数仅将字符作为参数,但很容易定义一个函数,该函数对所有非字符返回false而不是失败:
(define (letter? x) (and (char? x) (char-alphabetic? x)))
答案 1 :(得分:4)
使用char-alphabetic?
程序。来自documentation:
如果char具有Unicode“字母”属性,则
char-alphabetic?
返回#t。
像这样使用:
(char-alphabetic? #\a)
> #t
如果角色在变量中:
(define x #\a)
(char-alphabetic? x)
#t
请注意,char-alphabetic?
仅适用于字符。
<强>更新强>
重新阅读我认为我误解了它的问题。如果您有兴趣了解变量的名称是否只是一个字母,那么这将有效:
(define (is-variable-a-letter? x)
(let ((var (string->list (symbol->string x))))
(and (= (length var) 1)
(char-alphabetic? (car var)))))
(is-variable-a-letter? 'x)
> #t
另一方面,如果您对变量的实际内容感兴趣,请应用此答案的第一部分。