在 Racket 中使用 "define-type" 会报错
Usage of "define-type" in Racket gives an error
最近我在学习 Racket,但在理解 "define-type" 语法时遇到了一些困难。我试过以下代码:
#lang racket
(define-type Num Number)
但它输出以下错误消息:
define-type: unbound identifier in module in: define-type
谁能帮我解决这个错误?我已经阅读了所有可能的文档,它似乎应该可以工作。
每个 Racket 程序都以 #lang
开头的行开头是有原因的:Racket 不仅是一种编程语言,而且是编程语言的 生态系统 。每个文件(更具体地说,每个 模块 )都可以使用自己的编程语言,并且它们都可以轻松地相互交谈。
默认情况下,Dr. Racket 创建的新文件顶部有 #lang racket
行。这就是“Racket语言”,但它并不是“Racket系统”提供的唯一语言,“Racket系统”实际上包含了数十种语言,有的与#lang racket
区别不大,有的则几乎毫无关联。
当您想使用 Typed Racket 时,您需要选择使用该语言而不是动态类型的普通 #lang racket
。您可以通过在程序顶部编写 #lang typed/racket
来完成此操作。
#lang typed/racket
(define-type Num Number)
现在您可以在该模块中使用 Typed Racket 的所有功能。
最近我在学习 Racket,但在理解 "define-type" 语法时遇到了一些困难。我试过以下代码:
#lang racket
(define-type Num Number)
但它输出以下错误消息:
define-type: unbound identifier in module in: define-type
谁能帮我解决这个错误?我已经阅读了所有可能的文档,它似乎应该可以工作。
每个 Racket 程序都以 #lang
开头的行开头是有原因的:Racket 不仅是一种编程语言,而且是编程语言的 生态系统 。每个文件(更具体地说,每个 模块 )都可以使用自己的编程语言,并且它们都可以轻松地相互交谈。
默认情况下,Dr. Racket 创建的新文件顶部有 #lang racket
行。这就是“Racket语言”,但它并不是“Racket系统”提供的唯一语言,“Racket系统”实际上包含了数十种语言,有的与#lang racket
区别不大,有的则几乎毫无关联。
当您想使用 Typed Racket 时,您需要选择使用该语言而不是动态类型的普通 #lang racket
。您可以通过在程序顶部编写 #lang typed/racket
来完成此操作。
#lang typed/racket
(define-type Num Number)
现在您可以在该模块中使用 Typed Racket 的所有功能。