On Sat, 29 Sep 2012 10:30:32 -0700, m...@mikesolomon.org <m...@mikesolomon.org> wrote:
The way you're using "tentative" is almost exactly how pure properties are used in LilyPond.
Specifically, 'pure-height being the estimated vertical extent before line-breaking, while 'height is its extent after line-breaking. If there are distinct properties to describe the position at different stages, then each property can be evaluated just once (as HanWen suggested, and as Mike agreed 100%).
I think all property look-ups should be pure until one is absolutely certain that the property won't change, at which point the unpure value should be cached and returned for both pure and unpure queries (impure sounds too religious, thus unpure). The pure properties need not always return the same value - they can get closer and closer to the unpure as more and more information gets determined.
This is the opposite approach, where some "properties" are not permanent at all. The word 'tentative' is a better label than 'pure', because pure functions would always return the same value given the same arguments. _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel