Erlang Type System
Mon Sep 19 00:55:51 CEST 2005
Yes thanks, from the previous post i realized my understanding of what
dynamic and static typing meant. I understand now.
On Sep 18, 2005, at 4:38 PM, Richard A. O'Keefe wrote:
> As I understand it, with a dynamically typed language you can
> change the type of x.
> That is not a correct understanding.
> For instance in Python x = 1; x = 1.5;
> But in that example, nothing changed its type.
> 1 was and remained an integer.
> 1.5 was and remained a floating-point number.
> A more accurate statement would be that in a dynamically typed language
> "type" is a property of values rather than variables.
> Obviously we can't do that in Erlang.
> There are actually several senses in which you can.
> Each process has a process dictionary, which is in practice
> a hash table, and you can associate any kind of data with any
> key and you can change the kind of data associated with an existing
> Once you leave the realm of primitive scalar types, Java is arguably
> a dynamically typed language, or at least was until 1.5.
> Most people tell me Erlang is still dynamically typed because
> the variable passed in a function can be of any type.
> Either "most people" are confused, or you are mis-reporting them.
> You cannot pass a variable to a function in Erlang.
> Since Erlang does not associate types with variables at compile time,
> it clearly isn't a statically typed language. Since it has values of
> distinct and distinguishable types and has type-specific operations,
> it isn't an untyped language either. What's left?
More information about the erlang-questions