Re: Python from Wise Guy's Viewpoint
On Mon, Oct 27, 2003 at 07:00:01PM +0100, Andreas Rossberg wrote:[color=blue]
> Pascal Costanza wrote:[color=green]
> >
> >Can you show me an example of a program that does't make sense anymore
> >when you strip off the static type information?[/color]
>
> Here is a very trivial example, in SML:
>
> 20 * 30
>
> Multiplication, as well as literals, are overloaded. Depending on
> whether you type this expression as Int8.int (8-bit integers) or
> IntInf.int (infinite precision integer) the result is either 600 or an
> overflow exception.[/color]
May I point out that the correct answer is 600, not overflow?
Something that annoys me about many statically-typed languages is the
insistence that arithmetic operations should return the same type as the
operands. 2 / 4 is 1/2, not 0. Arithmetically, 1 * 1.0 is
well-defined, so why can I not write this in an SML program?
I do believe Haskell does it right, though, with its numeric tower
derived from Lisp.
--
; Matthew Danish <mdanish@andrew .cmu.edu>
; OpenPGP public key: C24B6010 on keyring.debian. org
; Signed or encrypted mail welcome.
; "There is no dark side of the moon really; matter of fact, it's all dark."
On Mon, Oct 27, 2003 at 07:00:01PM +0100, Andreas Rossberg wrote:[color=blue]
> Pascal Costanza wrote:[color=green]
> >
> >Can you show me an example of a program that does't make sense anymore
> >when you strip off the static type information?[/color]
>
> Here is a very trivial example, in SML:
>
> 20 * 30
>
> Multiplication, as well as literals, are overloaded. Depending on
> whether you type this expression as Int8.int (8-bit integers) or
> IntInf.int (infinite precision integer) the result is either 600 or an
> overflow exception.[/color]
May I point out that the correct answer is 600, not overflow?
Something that annoys me about many statically-typed languages is the
insistence that arithmetic operations should return the same type as the
operands. 2 / 4 is 1/2, not 0. Arithmetically, 1 * 1.0 is
well-defined, so why can I not write this in an SML program?
I do believe Haskell does it right, though, with its numeric tower
derived from Lisp.
--
; Matthew Danish <mdanish@andrew .cmu.edu>
; OpenPGP public key: C24B6010 on keyring.debian. org
; Signed or encrypted mail welcome.
; "There is no dark side of the moon really; matter of fact, it's all dark."
Comment