[plt-dev] some Racket proposals & implementation

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Mon Apr 5 10:18:26 EDT 2010

On Apr 4, 2010, at 10:37 PM, Eli Barzilay wrote:

> On Apr  4, Matthias Felleisen wrote:
>> On Apr 3, 2010, at 8:19 PM, Matthew Flatt wrote:
>>
>>> I like
>>>  (define-struct (a x y) #:super b)
>>> much better than the current
>>>  (define-struct (a b) (x y))
>>> but I'm not sure that it's worth changing.
>>
>> The issue I brought up in Boston was the 'heaviness' of the looks of
>> our code, which to some extent is caused by long names. Going from
>> (make-a 0 1) to (a 0 1) is a good weight loss. The above seems to
>> call for trouble for a minor advantage.
>
> I think that there *is* some weight loss here too -- one that is
> similar to loss of moving from `mzlib/kw' to the current syntax.
> Specifically, there's a whole bunch of struct features that you get
> with no need to remember anything more than "use `define-struct'
> instead of `struct'".  It's also the same kind of win as "use `for/*'
> instead of `let'" that makes the current iterators so good (as opposed
> to the srfi or the swindle or the CL syntaxes).


Yes, using a plain function header to specify structures (without body)
is very nice because you get all these things (keywords, initialization)
for free. But then we're back to the balance of change vs getting Racket
out. -- Matthias



Posted on the dev mailing list.