字符串前缀? \在模块中获取错误未绑定标识符

时间:2019-03-21 07:21:59

标签: racket string-prefix

我正在尝试使用字符串前缀?但是在模块

中获取错误未绑定标识符

(字符串前缀?“球拍”“ R”)

使用dracket

请帮助

1 个答案:

答案 0 :(得分:3)

TL; DR:在文件的第二行添加(require racket/string),它可能会起作用。


通常,这可以工作:

#lang racket

(string-prefix? "Racket" "R")

但是,string-prefix?可能不受约束有两种可能性。

  1. 您使用的是非标准的Racket语言,但该语言不提供string-prefix?。一种简单的检查方法是查看程序的第一行,看看是否有#lang <lang-id>,其中<lang-id>不是racket。例如:

    #lang racket/base
    
    (string-prefix? "Racket" "R")
    

    在这里,string-prefix?不受约束,因为racket/base不提供string-prefix?

  2. 您使用的是特殊语言。在这种情况下,您的程序的第一行将没有#lang,但是左下角将指示您正在使用的语言(例如,初学者)。

在两种情况下,如果该语言提供了require构造,则只需添加(require racket/string)就可以使string-prefix?可用。这是因为string-prefix?是在racket/string中定义的。

#lang racket/base

(require racket/string)

(string-prefix? "Racket" "R")