在我的代码中,我试图检查字符串是否具有特定的前缀, 这样做,我正在使用平等吗?和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
答案 0 :(得分:2)
请记住,string-ref
返回一个字符,而不是字符串。为了使比较成功,请使用#\p
而不是"p"
。
(define (plPrefixContained x )
(equal? (string-ref x 0) #\p))
以上将起作用。但是要使其更加明确,您应该使用char=?
而不是equal?
,这样您会记住比较是在字符之间进行的。