Community
Participate
Working Groups
An evaluation such as aCollection->select(p | p... = ...) is a lookup of the p... key of aCollection. Since all p... need evaluating, caching the mapping incurs moderate cost. If there is any likelihood that the evaluation is repeated for another key, the saving can be significant. For QVT a re-evaluation is very likely. For OCL it might be worth examining the ancestry of the select to see if it is locally repeated. However for other applications such as validation, the repeat may not be obvious. Is it worth assuming re-evaluation always? Also applicable to reject and exploitable by one, any.