String 字符串引用函数不使用';I don’我不能如愿工作

String 字符串引用函数不使用';I don’我不能如愿工作,string,racket,String,Racket,在我的代码中,我试图检查字符串是否有特定的前缀, 要做到这一点,我使用的是相等的?和字符串引用函数。 但它似乎并不像预期的那样起作用 这是我要说的部分: (: plPrefixContained : String -> Boolean) (define (plPrefixContained x ) (equal? (string-ref x 0) "p")) (test (plPrefixContained "pcenuc") => true) 我正在检查这个特定的函数,

在我的代码中,我试图检查字符串是否有特定的前缀, 要做到这一点,我使用的是相等的?和字符串引用函数。 但它似乎并不像预期的那样起作用

这是我要说的部分:

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

(test (plPrefixContained "pcenuc") => true)
我正在检查这个特定的函数,它应该返回true,但是在测试中我一直得到false。 我试图将“p”改为#/p”,并尝试使用string=?和eq来代替equal?,但什么都没有

任何帮助都将不胜感激

(测试(plPrefixContained“pcenuc”)=>真)


我使用的是DRracket,语言是#lang pl

请记住
string ref
返回一个字符,而不是字符串。要成功进行比较,请使用
\p
而不是
“p”

上面的方法会起作用。但是为了使它更明确,您应该使用
char=?
而不是
equal?
,这样您就会记住比较是在字符之间进行的

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