Bernhard Herzog <[EMAIL PROTECTED]> wrote: ... > > and y, obviously. However, a framework for 2D geometry entirely based > > on immutable-instance classes would probably be unwieldy > > Skencil's basic objects for 2d geometry, points and transformations, are > immutable. It works fine. Immutable object have the great advantage of > making reasoning about the code much easier as the can't change behind > your back.
Yes, that's important -- on the flip side, you may, in some cases, wish you had mutable primitives for performance reasons (I keep daydreaming about adding mutable-number classes to gmpy...;-) > More complex objects such as poly bezier curves are mutable in Skencil, > and I'm not sure anymore that that was a good design decision. In most > cases where bezier curve is modified the best approach is to simply > build a new bezier curve anyway. Sort of like list-comprehensions make > it easier to "modify" a list by creating a new list based on the old > one. True, not for nothing were list comprehensions copied from the functional language Haskell -- they work wonderfully well with immutable data, unsurprisingly;-). However, what if (e.g.) one anchor point within the spline is being moved interactively? I have no hard data, just a suspicion that modifying the spline may be more efficient than generating and tossing away a lot of immutable splines... Alex -- http://mail.python.org/mailman/listinfo/python-list