[plt-scheme] htdp and modules
On Nov 23, 2007, at 5:08 AM, Jan Christiansen wrote:
> Hi,
>
> Am 22.11.2007 um 18:21 schrieb Matthias Felleisen:
>
>>> We really would like to use HtDP (and we at least use it for the
>>> first quarter of the course) but we would also like to use the
>>> module system for the next exercises. We want to demonstrate the
>>> ideas of abstract data types.
>>
>> That's a legitimate concern. I have considered this myself for
>> HtDP/2e (though I wouldn't call this abstract data type. This term
>> is too loaded.)
>>
>> Here are two modules that work in the way you want. The first
>> imports contract.ss, though note the unusual spec (when compared
>> with the mzscheme language). It also exports a value and a
>> function via provide/contract. The second one imports these values.
>
> this is great. Thanks a lot. Just one more question. Is there a way
> to use the standard provide without a contract. I know that I could
> use an any contract to achieve this but I would like to introduce
> the module system first and then extend it by contracts.
>
> Regards, Jan
Hmph, it's not in there. Here is a brute-force patch:
In collects/lang/, change htdp-intermediate.ss, htdp-intermediate-
lambda.ss htdp-advanced.ss as follows:
> (rename beginner-or or)
> (rename beginner-require require)
> provide
;; ---------^^^^^^^^-------------- add this
> (rename beginner-dots ..)
> (rename beginner-dots ...)
[Warning: this works because teaching programs become modules
somewhere on their way to the REPL.]
I'll add this as a feature request for the next release. -- Matthias