Vas*_*hin 2 types racket pie-lang
在《The Little Typer》一书中,我刚刚开始使用DrRacket。从 David Christiansen 的视频中,我输入了:
(claim two-plus-two-is-four
(= Nat (+ 2 2) 4))
Run Code Online (Sandbox Code Playgroud)
返回错误:
claim : this function is not defined.
Run Code Online (Sandbox Code Playgroud)
为什么?
首先你需要安装pie. 在 DrRacket 中,您可以通过以下方式执行此操作:File > Package Manager... > Do What I Meanpie ,在包源字段中键入,然后单击安装。
或者,如果您使用命令行,则可以使用以下命令安装它:
raco pkg install pie
Run Code Online (Sandbox Code Playgroud)
其次,如果您使用 DrRacket,您需要确保在窗口左下角选择“从源确定语言”(在命令行上这是默认设置)。
第三,放在#lang pie文件的顶部。
#lang pie
(claim two-plus-two-is-four
(= Nat (+ 2 2) 4))
Run Code Online (Sandbox Code Playgroud)
这仍然不起作用,因为它+不是内置的;它可以根据其他内置的东西来定义(这在本书的第 72 - 77 页上讨论)。