On 2003-12-18T08:46:30-0500, John Clements wrote: > >>No one seems to be refuting the point that a difference between ML and > >>Haskell is the inability to formulate a reduction semantics that > >>ignores the type proof. > >Right. C++ is similar to Haskell in this regard. > I'm sorry, I don't see that. Can you give me that example again? In > fact, I don't see how this can arise without type inference. My earlier example was: struct A { A() { cout << "Constructing A" << endl; } struct B { B() { cout << "Constructing B" << endl; } int main() { A x; } C++ does have a little bit of compile-time type inference, in the form of overloading resolution (and partial template specialization) (but I am not including virtual method dispatch). > The step that confuses me is where (in Haskell) I have to make a > control-flow decision based on type information associated with code > that hasn't yet been executed. If it's the "code that hasn't yet been executed part" that alarms you, then C++ alarms you too: int f(char()) { return 1; } int f(bool()) { return 2; } Though Haskell type classes have coherence guarantees that C++ lacks. -- Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig Remember 9/11 * "It's untidy. And freedom's untidy. And free people are free to make mistakes and commit crimes and do bad things." -- Donald Rumsfeld China has listed the organization behind http://www.uygur.org/ as terrorist. http://www.mps.gov.cn/webpage/showNews.asp?id=1118&biaoshi=bitGreatNews
Attachment:
signature.asc
Description: Digital signature