[plt-scheme] Graphs

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue Feb 8 16:05:44 EST 2005

On Feb 8, 2005, at 3:35 PM, Robby Findler wrote:

>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> At Tue, 08 Feb 2005 15:19:32 -0500, Guillaume Marceau wrote:
>> I always wondered why plt-scheme doesn't come with a standard assert
>> macro.
>
> I've tried to make contracts fill most of this need. I can see why you
> might still want it occasionally, but most of the time you'd rather
> have blame attached, so would rather use a contract, imo.

Just to say this again, because it might make sense then:

   an ASSERT is NOT the same as a CONTRACT,
   and a CONTRACT does not play the role of ASSERT.

However, a _good_ assert macro for Scheme (and I haven't seen one that 
fills Schemers needs, though I have seen plenty that fills the need of 
C programmers who like parentheses) would have to deal with the same 
issues that Robby figured out for his dissertation.

[If you're wondering, here is an example:

  (define (g k)
   (let ([f (ASSERT (positive? . -> . positive?) (lambda (x) ... k ...)])
     (f ..)
     ...
     f)

]

And yes, I know we owe the world a paper that explains the difference. 
-- Matthias



Posted on the users mailing list.