在球拍中使用"define-type"会出错



最近我正在学习Racket,在理解"定义类型"语法方面遇到了一些困难。我尝试了以下代码:

#lang racket
(define-type Num Number)

但它输出以下错误消息:

define-type: unbound identifier in module in: define-type

有人可以帮助我处理此错误吗?我已经阅读了所有可能的文档,似乎它应该可以工作。

每个 Racket

程序都以 #lang 开头的行开头是有原因的: Racket 不仅仅是一种编程语言,而是一个编程语言的生态系统。每个文件(更具体地说,每个模块)都可以使用自己的编程语言,并且它们都可以轻松地相互通信。

默认情况下,Dr. Racket 会创建顶部带有#lang racket行的新文件。这就是"球拍语言",但它并不是"球拍系统"提供的唯一语言,它实际上包括数十种语言,有些与#lang racket没有太大区别,有些几乎完全无关。

当您想使用Typed Racket时,您需要选择使用该语言而不是动态类型的普通#lang racket。您可以通过在程序顶部编写#lang typed/racket来执行此操作。

#lang typed/racket
(define-type Num Number)

现在,Typed Racket的所有功能都将在该模块中可供您使用。

最新更新