DrRacket中含#lang的Racket程序报错:#lang未启用
问题分析与解决
根本原因
你遇到的错误核心是当前DrRacket的语言设置为Beginning Student——这个面向教学的简化语言不支持#lang声明,同时也没有内置display和vector->string这类标准Racket函数,所以会出现两种矛盾报错:
- 保留
#lang racket时,Beginning Student不允许该声明,触发read-syntax: #lang not enabled错误 - 删除
#lang racket时,Beginning Student无法识别display函数
解决步骤
- 点击DrRacket顶部菜单栏的 Language → Choose Language...
- 在弹出的语言选择窗口中:
- 直接在搜索框输入
Racket找到对应选项 - 或从左侧列表展开“Racket”分类,选择基础的Racket语言
- 直接在搜索框输入
- 点击OK保存设置,重新运行代码
验证效果
设置完成后,编辑器里的#lang racket不会再被红/粉色高亮,运行代码会正常输出:
Hi!
内容的提问来源于stack exchange,提问作者Scooter
相关产品推荐
相关产品推荐

