字符串引用功能无法正常工作

时间:2019-03-30 10:14:59

标签: string racket

在我的代码中,我试图检查字符串是否具有特定的前缀, 这样做,我正在使用平等吗?和string-ref函数。 但它似乎无法正常工作

这是我正在谈论的部分:

(: plPrefixContained : String  -> Boolean)
(define (plPrefixContained x )
   (equal? (string-ref x 0) "p"))

(test (plPrefixContained "pcenuc") => true)

我正在检查此特定功能,该功能应返回true,但对于测试,我一直会出错。 我试图将“ p”更改为“#/ p”,并且尝试使用string =?和eq?插入等于?但什么也没有。

任何帮助将不胜感激

(test(plPrefixContained“ pcenuc”)=>是)

我正在使用DRracket,语言是#lang pl

1 个答案:

答案 0 :(得分:2)

请记住,string-ref返回一个字符,而不是字符串。为了使比较成功,请使用#\p而不是"p"

(define (plPrefixContained x )
   (equal? (string-ref x 0) #\p))

以上将起作用。但是要使其更加明确,您应该使用char=?而不是equal?,这样您会记住比较是在字符之间进行的。