You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Racket类定义示例代码时遇collection未找到错误求助

解决DrRacket中“无法找到racket/class/lang/reader集合”的错误

核心原因

#lang racket/class不是合法的顶层语言声明——racket/class是Racket的类系统库,而非独立的顶层语言,DrRacket找不到对应的语言阅读器(reader),因此报错。

解决方案

1. 修正代码的语言与导入声明

将代码开头的#lang racket/class替换为#lang racket,并显式导入类库。以下是官方示例的正确写法:

#lang racket
(require racket/class)

(define book-class%
  (class object%
    (init-field title author pages)
    (super-new)
    
    (define/public (get-title) title)
    (define/public (get-author) author)
    (define/public (get-pages) pages)
    
    (define/public (display-info)
      (printf "Book: ~a by ~a, ~a pages~n" title author pages))))

; 测试代码
(define my-book (new book-class% [title "The Racket Guide"] [author "Matthew Flatt"] [pages 300]))
(send my-book display-info)

2. 确保安装完整的Racket发行版

Ubuntu软件中心提供的Racket可能是精简版,缺少部分核心库。建议:

  • 卸载所有现有Racket版本(包括snap、软件中心安装的版本)
  • 通过APT安装完整包:
    sudo apt update
    sudo apt install racket-full
    
    或使用官网提供的完整安装脚本重新安装。

3. 重置DrRacket包环境

如果之前的混合安装导致包目录混乱:

  • 关闭DrRacket
  • 删除用户目录下的Racket配置文件夹:~/.racket/8.15
  • 重启DrRacket,让它重新初始化包环境

内容的提问来源于stack exchange,提问作者Scooter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:52:33