[plt-scheme] Re: plt-scheme type of language

From: keydana at gmx.de (keydana at gmx.de)
Date: Fri Dec 11 06:08:46 EST 2009

Hi Shriram,

I read PLAI about 1 year ago and found it a big, big help in understanding basic topics that had been a bit fuzzy to me before:
- how an interpreter works,
- what a closure really "is",
- continuations (there, I've been reading lots of different texts, and I found the chapters in PLAI the most helpful of all),
- macros (there, I think it was even the first time I understood what macros are really :-) - and I absolutely LOVE the automaton part which I knew already from the dedicated article on this)...

As regards types, I must admit it's the part I remember the least, although I DID keep in mind the warning on not to use the notion of "strong typing" :-)

Now if I'd been asked to answer the question, I guess I'd have answered in the line of Marek and Real World Haskell (which I'm also BTW in the course of reading :-;) - I wonder why?

Right now I reread the types section of PLAI, and I find it clear and understandable - in what it says. Perhaps what makes it difficult is what it doesn't say.
I understand (from chapter 28) that we can talk about "type safety" and "static checking". 
Regarding the latter, it's what I think people mean by "static typing" - although of course "static checking" is a much better name for it.

Regarding the former, I already would be in difficulty to say if I may use it synonymously with "type soundness" (which is of course defined before, but still I'm not sure :-;).
Now when people "out there" talk about "strong typing", I understand I'm supposed to say "that's the wrong question to ask", but for me as a non-expert it will still be difficult 
to argue with them... Instead, I'm tempted to equate it with the notion of "type safety", but I'm not sure if it will work: I understand the problem of C being the independence
of the static and runtime type systems, but then how about the PHP/Perl example of 1 + "1"...?

I'm sorry, it seems I cannot describe this more clearly, so I'm afraid it's not much help - apart from perhaps showing that this part of PLAI (specifically, the differentiation and relation of
the "sound notions" to the ones "used out there" might be a bit more detailed?

Also, I find it difficult to make the leap to what Matthias posted about the scheme type system. (Naively put, I'm used to think of there being different types... now there's only one but
with production rules... what consequences does this have, how does type checking work, then, in practice...)
Perhaps having a "tour" of the type systems in different well-known languages, including scheme, would help to make this more concrete? (Because for the parts of PLAI I gained 
most from, I always had the concrete language feature - scheme continuations, macros... - in my head...)

Well I'm not sure if what I 've written here is not too fuzzy to be of any use... but at least it's some sort of "feedback", so I post it all the same...


> I like to think that that is what I have tried to do in the types
> section of PLAI (inspired heavily by Matthias's thinking on this
> topic).  And I continue to revise and improve it along those lines.
> And I put it out for free on the Web to make it more easily accessible
> to the Internet masses.  So I would certainly appreciate feedback on
> ways in which PLAI fails.
> Shriram

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20091211/58be9de9/attachment.html>

Posted on the users mailing list.