创建一个检查字符的函数?
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
我一直在考虑如何在 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