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

时间:2015-05-18 12:52:45

标签: function scheme

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

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

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

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

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

1 个答案:

答案 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