(no) class (on) LaborDay extends Weekend
Sep. 7th, 2004 12:24 amThis weekend was a non-uniform mixture of doing work, not doing work, and contemplation of each. Followed, of course, by barbecue today.
My social circle seems to have stopped expanding for the moment. Hopefully it will start growing again soon as I become more comfortable here. Which is weird, because I was very comfortable a couple of weeks ago just before classes started, so much so that Dr. Priebe (who is in charge of the 398T immigration-esque course) thought that I was either not a first-year, or that I had been an undergrad at UT, since I already seemed so well-adjusted. And then I kind of lost that.
For any of you PL-interested people: If you would like to explore a new language, try Scala. You have my testimony as a PL weenie that this language is T3H H0TT. It has the most powerful static type system I've seen to date; it beats {SML, OCaml, Haskell} like redheaded stepchildren.
My social circle seems to have stopped expanding for the moment. Hopefully it will start growing again soon as I become more comfortable here. Which is weird, because I was very comfortable a couple of weeks ago just before classes started, so much so that Dr. Priebe (who is in charge of the 398T immigration-esque course) thought that I was either not a first-year, or that I had been an undergrad at UT, since I already seemed so well-adjusted. And then I kind of lost that.
For any of you PL-interested people: If you would like to explore a new language, try Scala. You have my testimony as a PL weenie that this language is T3H H0TT. It has the most powerful static type system I've seen to date; it beats {SML, OCaml, Haskell} like redheaded stepchildren.
no subject
Date: 2004-09-07 08:33 am (UTC)no subject
Date: 2004-09-07 11:20 am (UTC)no subject
Date: 2004-09-07 11:22 am (UTC)Anyway, I just wanted to construe type-checkers engaged in an eternal ninja battle.
no subject
Date: 2004-09-07 12:15 pm (UTC)def fac(n: Int) = if (n == 0) 1 else n * fac(n - 1);
Yes, that seems suspicious to me too. I haven't yet been able to discern why one could not incorporate such inference into the checker. I assume it is because of situations more complicated than this, which I suspect might arise if one were dealing with arguments and return types that are subject to more constraints than Int is. :-)
I'll see if I can locate or invent an example.
no subject
Date: 2004-09-07 01:14 pm (UTC)From "Local Type Inference" [Pierce,Turner 1998]
"In particular, we are concerned with languages whose type-theoretic core combines subtyping and impredicative polymorphism in the style of System F. This combination of features places us in the realm of partial type inference methods, since complete type inference for impredicative polymorphism alone is already known to be undecidable, and the addition of subtyping does not seem to make the problem any easier. (For the combination of subtyping with Hinley/Milner-style polymorphic type inference, promising results have recently been reported [list of citations], but practical checkers based on these results have yet to see widespread use.)"
The list of citations at the end includes at least one paper with Odersky as a co-author, and since Odersky is master and commander of Scala (i.e. he appears on every single Scala paper at all ever), I would assume that there is good reason why local type inference is as far as Scala goes.
Thanks for the challenge, by the way; I have at least four new papers to digest now, including Odersky's own "A Nominal Theory of Objects with Dependent Types" and "Colored Local Type Inference". Makes me wish I had taken a graduate type theory course at CMU, oh well.
no subject
Date: 2004-09-07 12:54 pm (UTC)no subject
Date: 2004-09-07 01:15 pm (UTC)no subject
Date: 2004-09-07 03:16 pm (UTC)no subject
Date: 2004-09-07 04:37 pm (UTC)