模块
因为你的程序在定义窗口开始
#lang slideshow
您放入定义窗口中的所有代码都在模块中。此外,该模块最初从slideshow指定的模块导入所有内容,slideshow导出图片制作功能以及更常用的功能,如列表和地图。
要导入其他库,请使用require表单。例如,库pict/flash提供了一个填充flash函数:
(require pict/flash)
> (filled-flash 40 30)
image
模块的命名和分发方式多种多样:
一些模块包装在球拍分布或其他安装到集合的层次。例如,模块名pict/flash表示“在文件中实现的模块”flash。位于“pict”集合中的rkt。当模块名不包含斜杠时,它指的是“main”。rkt”文件。
有些模块集合是作为包分发的。可以使用安装包安装软件包…菜单项,或他们可以安装使用raco pkg命令行工具。例如,安装“avl”包使avl模块可用。
包可以在https://pkgs.racket-lang.org/注册,也可以直接从Git存储库、web站点、文件或目录安装。更多关于包装的信息,请参见球拍中的包装管理。
要保存你的定义,使用DrRacket的“保存定义”菜单项。
有些模块是相对于其他模块存在的,并不一定属于任何特定的集合或包。例如,在DrRacket中,如果你把到目前为止的定义保存在一个文件中 "quick.rkt" “quick.rkt” and add the line 然后添加一行
(provide rainbow square)
然后你可以在DrRacket里打开一个新标签或窗口,输入新程序“use”。在与“quick.rkt”相同的目录下:
#lang racket
(require "quick.rkt")
(rainbow (square 5))
当你运行“使用。输出的是一个正方形的彩虹列表。注意,“使用。rkt"是使用初始的import racket编写的,它本身不提供任何图像制作函数,但提供了require和函数调用语法。
Racketeers 通常编写新的程序和库作为模块,通过相对路径和基于集合的路径相互导入。当以这种方式开发的程序或库对其他人来说似乎有用时,可以将其注册为包,特别是如果实现托管在Git存储库中。