[plt-scheme] HTDP: Testing programs
----- Original Message -----
From: "Matthias Felleisen" <matthias at ccs.neu.edu>
To: "Shriram Krishnamurthi" <sk at cs.brown.edu>
Cc: "PLT List" <plt-scheme at list.cs.brown.edu>
Sent: Wednesday, August 27, 2008 3:18 PM
Subject: Re: [plt-scheme] HTDP: Testing programs
>
> Shriram's saying that the design recipe demands the creation of examples
> *before* you create the function. The idea is that this scales up to
> larger development efforts, too.
>
> In principle, a design looks like this:
>
> ;; f->c : Number -> Number
> ;; convert a fahrenheit temperature to a celsius temperature
Nitting a little bit I say that in most systems of dimensional units a
temperature is not a number. It is a number times a unit of temperature
relative to an offset temperature.
f -> c : Real Number -> Real Number
convert real number f to real number c such that f degrees Farhenheit = c
degrees Celcius,
where "=" is exact when f is exact and "=" is approximative when f is
inexact.
I say this because I am a little bit concerned about the many examples in
books about mathematics and programming that do not consistently apply the
theory of dimensions.
Imho it is wrong to say that the surface of a square with side 10 is 100.
This can only be correct in a system of units in which lengths have no
dimensional unit, but I never have seen such a system (on the contrary, the
*simplest* system of units I know of, has one dimensional unit, namely for
length)
This is important for progarammers too. We may *represent* a temperature by
a number with respect to a chosen scale of units but while programming we
should be aware of the fact that the representation is not the same as the
represented quantity.
Jos
>
> (check-expect (f->c 32) 0)
> (check-expect (f->c 212) 100)
>
> (define (f->c f-temp)
> (cond
> [(= f-temp 32) 0]
> [(= f-temp 212) 100]
> [else f-temp]))
>
> ;; ---
>
> Over the years, HtDP and drscheme have gotten a bit out of hand. One day
> we'll catch up. -- Matthias
>
>
>
>
>
>
>
>
>
> On Aug 27, 2008, at 7:19 AM, Shriram Krishnamurthi wrote:
>
>> The intent is that you write test cases *before* you
>> write your functions. If you had done this, and your
>> test cases covered your program, DrScheme would
>> not complain at you. Bad boy! (-:
>>
>> Shriram
>>
>> On Tue, Aug 26, 2008 at 11:39 PM, Grant Rettke <grettke at acm.org> wrote:
>>> Hi folks,
>>>
>>> In HTDP beginner language on problem 2.2.1, when I evaluate it,
>>> DrScheme complains that "This program should be tested".
>>>
>>> is the intention that students start testing immediately, or we ill
>>> add tests later on?
>>>
>>> I used check-expect for now.
>>>
>>> Best wishes,
>>>
>>> Grant
>>> _________________________________________________
>>> For list-related administrative tasks:
>>> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>>
>> _________________________________________________
>> For list-related administrative tasks:
>> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme