
Derek Elkins wrote:
On Sat, 2008-01-26 at 20:49 -0500, Isaac Dupree wrote:
Michael Reid wrote:
The power of Haskell's type system makes it feel like you are programming in a dynamic language to some degree, yet all of it is type-checked, and that is just *really* cool. to some degree, (in current Haskell compilers), it *is* more like a dynamic than a static language: except when optimized away, values of all types are represented by a pointer to their actual value. (this helps with parametric polymorphism and laziness (take :: Int -> [a] -> [a]).) (at least this is a difference compared to C++)
Boxing is orthogonal to dynamic/static. You can have boxing in statically typed languages, e.g. Haskell, Java, C#
yes I know, although we are talking about communicating to people who don't necessarily know as much as we do.
and you can have unboxed values in dynamically typed languages.
really? Sure that's possible as an optimization, but I thought that to explicitly specify that would require a known static type. Or perhaps the bit-"tagging" by which some Scheme implementations are able to hold small integers without a pointer (IIRC)? ~Isaac