[Haskell-cafe] What is a Boxed Array?
jerzy.karczmarczuk at info.unicaen.fr
jerzy.karczmarczuk at info.unicaen.fr
Fri Dec 9 17:16:48 EST 2005
Tomasz Zielonka:
...
> there are other reasons to box values besides implementing laziness,
> like for simplifying the memory model (which can simplify GC
> implementation), allowing to intermix values of different types
> (different kinds of polymorphism) or allow variable sized values (think
> strings, arrays and arbitrary size integers).
> Some concrete examples: Arrays in many scripting languages, like Python,
> are often boxed. There are some languages, like R, where there are many
> types of unboxed arrays, for efficiency reasons.
There are nice unboxed arrays in Clean as well. The gain of efficiency is
enormous.
==
Hmmm.... I thought that arrays in Python have no reason to be boxed. Lists,
yes, since they are untyped, so they are arrays of pointers, but arrays are
homogeneous.
I don't know why boxing may simplify the *memory model*.
The most dramatic effect of implicit boxing is the possibility -
available in Smalltalk - to change the *identity* of an object. You
write (x become y), and all references to the object assigned to x, point
now to something completely different. A terrible weapon.
Jerzy Karczmarczuk
More information about the Haskell-Cafe
mailing list