Python from Wise Guy's Viewpoint

prunesquallor at comcast.net prunesquallor at comcast.net
Mon Oct 27 20:49:03 EST 2003


Ed Avis <ed at membled.com> writes:

> Joe Marshall <jrm at ccs.neu.edu> writes:
>
>>Nitpick: You are defining as a program that which passes a static
>>type checker.  What would you like to call those constructs that make
>>sense to a human and would run correctly despite failing a static
>>type check?
>
> In a language such as Haskell, there are no constructs that 'would run
> correctly' despite being ill-typed.  If you define
>
>     f :: Int -> Int
>
> then there's no way that f 'would run' if you somehow passed it a
> String instead.  I should point out, however, that typically a
> function will be defined over a whole class of values, eg
>
>     f :: Eq a => a -> a
>
> so that the function f works with any type that has equality defined.

What would you like to call those `syntactic constructs' that do not
currently type check in Haskell, yet *may* belong to a class of
syntactic constructs that *could* conceivably be type checked in a
successor to Haskell that has a better type inferencing engine?

Did I close all the loopholes?

Look, early versions of Haskell did not have as powerful a type
inferencing mechanism as the recent versions.  What do you call those
syntactic constructs that weren't programs before but are now?  What
do you call the syntactic constructs that aren't programs now, but
might be tomorrow?  *THOSE ARE THE THINGS WE ARE TALKING ABOUT*





More information about the Python-list mailing list