我一直在考虑如何在方案中创建一个根据输入构建自身的函数。
在方案中定义字符的方式是#(字符在这里),所以如果我用函数检查,如果我的字符确实是一个字符,我将不得不从函数中获取输入并插入它而不是(字符在这里),并使其工作。
我不确定这是怎么做的,如果我输入一个没有#\的随机字符,我知道它是一个未定义的函数,那么我该怎么做呢?
(define check-char?
(lambda (v)
(char? #\v)))
这就是我所拥有的,但如上所述,这不起作用。
答案 0 :(得分:1)
字符是一个值。从实现到实现,存储在内存中的值的确切程度各不相同。如果我们作为程序员想要创建一个角色,我们可以采取各种方式:
如果我们提前知道我们需要什么字符,我们可以使用文字语法:#\x
。当读者阅读程序时,它将构造一个代表字母x
的字符。
实际字符作为数字存储在内存中。如果我们知道该号码,我们也可以使用x
生成integer->char
。
> (integer->char 120)
#\x
字符串由一系列字符组成,因此我们也可以使用string-ref
生成字符:
> (string-ref "x" 0)
#\x
用于检查值是否为字符的过程称为char?
。
> (char? #\x)
#t
> (char? (string-ref "x" 0))
#t
您的check-char?
命令可以写成:
(定义check-char? (lambda(v) (char?v)))
或者简单地说:
(define check-char? char?)
让我们测试一下:
> (check-char? #'x)
#t
> (check-char? 3)
#f