A 4-year-old old post表示可以使用r5rs语言访问当前秒和相关函数。
这就是我要问的原因:我是Racket新手的高中老师,我们正在使用r5rs语言。我想通过一个不需要参数的函数开始向学生介绍函数。我遇到的例子是每小时几分钟。但我不知道如何在r5rs程序中识别这些功能。
感谢任何有用的建议。
答案 0 :(得分:1)
首先,为什么不使用#lang racket
代替r5rs?球拍非常注重教育。它甚至还有各种教学语言,可用于How to Design Programs教科书(或其second edition,目前仍在使用)。
Racket的R 5 RS的实现是有意限制的 - 它通常不打算用于任何实际的事情,因为Racket本身已经超出了它的Scheme根源。它可以作为教学工具使用,但正如您所见,它不包含任何特殊扩展(超出一小组内部形式)。
如果您真的对使用R 5 RS方案感兴趣,则存在与Racket捆绑在一起的SRFI 19: Time Data Types and Procedures实现。 R 5 RS没有模块系统,因此在纯Scheme中没有正式指定的加载外部库的方法。您需要使用Racket #%require
扩展来加载SRFI实现:
(#%require srfi/19)
这将使您可以访问所有SRFI 19函数和值。
您也可以在Racket本身中包含您想要的功能,因为这些语言实际上是可互操作的。要包含current-seconds
,您需要执行以下操作:
(#%require (only racket/base
current-seconds))
但是,如果您打算这样做,使用r5rs
语言似乎毫无意义。只需使用racket
或racket/base
代替。