创建一个检查字符的函数?

Create a function that checks characters?

我一直在考虑如何在 scheme 中创建一个根据输入自行构建的函数。

字符在方案中的定义方式是#(这里是字符),所以如果我要用一个函数检查我的字符是否确实是一个字符,我将不得不从函数中获取输入并插入它而不是(此处的字符),并使其工作。

我不知道这是怎么做到的,如果我输入一个没有#\ 的随机字符,我得到它是一个未定义的函数,那么我该怎么做呢?

(define check-char?
   (lambda (v)
        (char? #\v)))

这就是我所拥有的,但如前所述,这不起作用。

一个字符就是一个值。值在内存中的存储方式因实现而异。如果我们作为程序员想要创建一个角色,我们可以通过多种方式来实现:

如果我们提前知道我们需要什么字符,我们可以使用文字语法:#\x。 reader读取程序时,会构造一个代表字母x.

的字符

实际字符作为数字存储在内存中。如果我们知道那个数字,我们也可以使用 integer->char.

生成 x
> (integer->char 120)
#\x

字符串是由一系列字符组成的,所以我们也可以使用string-ref:

来生成字符
> (string-ref "x" 0)
#\x

用于检查值是否为字符的过程称为 char?

> (char? #\x)
#t
> (char? (string-ref "x" 0))
#t

你的check-char?命令可以写成:

(定义检查字符? (拉姆达 (v) (char?v)))

或简称为:

 (define check-char? char?)

我们来测试一下:

> (check-char? #'x)
#t
> (check-char? 3)
#f