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

Reply via email to