[Haskell-cafe] Very freaky
Andrew Coppin
andrewcoppin at btinternet.com
Tue Jul 10 17:15:23 EDT 2007
Jonathan Cast wrote:
> On Tuesday 10 July 2007, Andrew Coppin wrote:
>
>> OK, so technically it's got nothing to do with Haskell itself, but...
>>
>
> Actually, it does
>
I rephrase: This isn't *specifically* unique to Haskell, as such.
>> Now, Wikipedia seems to be suggesting something really remarkable. The
>> text is very poorly worded and hard to comprehend,
>>
>
> Nothing is ever absolutely so --- except the incomprehensibility of
> Wikipedia's math articles. They're still better than MathWorld, though.
>
Ah, MathWorld... If you want to look up a formula or identity, it's
practically guaranteed to be there. If you want to *learn* stuff...
forget it!
>> So is this all a huge coincidence? Or have I actually suceeded in
>> comprehending Wikipedia?
>>
>
> Yes, you have. In the (pure, non-recursive) typed lambda calculus, there is
> an isomorphism between (intuitionistic) propositions and types, and between
> (constructive) proofs and terms, such that a term exists with a given type
> iff a (corresponding) (constructive) proof exists of the corresponding
> (intuitionistic) theorem. This is called the Curry-Howard isomorphism, after
> Haskell Curry (he whom our language is named for), and whatever computer
> scientist independently re-discovered it due to not having figured out to
> read the type theory literature before doing type theoretic research.
>
...let us not even go into what constitutes "intuitionistic
propositions" (hell, I can't even *pronounce* that!) or what a
"constructive" proof is...
> Once functional programming language designers realized that the
> generalization of this to the fragments of intuitionistic logic with logical
> connectives `and' (corresponds to products/record types) and `or'
> (corresponds to sums/union types) holds, as well, the prejudice that
> innovations in type systems should be driven by finding an isomorphism with
> some fragment of intuitionistic logic set in, which gave us existential types
> and rank-N types, btw. So this is really good research to be doing.
>
On the one hand, it feels exciting to be around a programming language
where there are deep theoretical discoveries and new design territories
to be explored. (Compared to Haskell, the whole C / C++ / Java /
JavaScript / Delphi / VisualBasic / Perl / Python thing seems so boring.)
On the other hand... WHAT THE HECK DOES ALL THAT TEXT *MEAN*?! >_<
More information about the Haskell-Cafe
mailing list