对于实际使用方案的人来说,简单的问题,简单的答案。如何确定变量是否是字母表中的字母?
我认为它是这样的(字母?x),其中 x 是一些不确定的类型。谁能告诉我可以使用什么布尔函数?
编辑:
我怎么能做出这样的东西:(somFunction-isALetter?a)返回:#t
其中 a 不是变量。
在 Racket 中,该char-alphabetic?
函数只接受字符作为参数,但很容易定义一个函数,它为所有非字符返回 false 而不是失败:
(define (letter? x) (and (char? x) (char-alphabetic? x)))
使用此char-alphabetic?
过程。从文档中:
char-alphabetic?
如果 char 具有 Unicode“Alphabetic”属性,则返回 #t。
像这样使用它:
(char-alphabetic? #\a)
> #t
如果字符在变量中:
(define x #\a)
(char-alphabetic? x)
#t
请注意,char-alphabetic?
仅适用于characters。
更新:
重新阅读这个问题,我相信我误解了它。如果您有兴趣了解变量的名称是否只是一个字母,这将起作用:
(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
另一方面,如果您对变量的实际内容感兴趣,请应用此答案的第一部分。