строка-префикс? \ получение ошибки несвязанного идентификатора в модуле - PullRequest
0 голосов
/ 21 марта 2019

я пытаюсь использовать строковый префикс?но получение несвязанного идентификатора ошибки в модуле

(строковый префикс? "Racket" "R")

с использованием drracket

, пожалуйста, помогите

1 Ответ

3 голосов
/ 21 марта 2019

TL; DR: добавьте (require racket/string) во вторую строку вашего файла, и это, вероятно, будет работать.


Обычно это будет работать:

#lang racket

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

Однако есть две возможности, по которым string-prefix? может быть не связан.

  1. Вы используете нестандартный язык ракеток, и язык не предоставляет string-prefix?. Простой способ проверить, так ли это, - взглянуть на первую строку вашей программы и посмотреть, есть ли у вас #lang <lang-id>, где <lang-id> не равно racket. Например:

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

    Здесь string-prefix? не связан, потому что racket/base не предоставляет string-prefix?.

  2. Вы используете специальный язык. В этом случае ваша программа не будет иметь #lang в первой строке вашей программы, но в нижнем левом углу будет указан язык, который вы используете (например, Beginning Student).

В обоих случаях, если язык предоставляет конструкцию require, то простое добавление (require racket/string) сделает доступным string-prefix?. Это потому, что string-prefix? определено в racket/string.

#lang racket/base

(require racket/string)

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