Micha Nelissen <mi...@neli.hopto.org>:

> Vinzent Höfler wrote:
> > Von: Micha Nelissen <mi...@neli.hopto.org>
> >> That's why I suggested the use of 'const functions' in other message in
> >> this thread.
> > 
> > Yes, I read that later on. Is that implemented in FPC? 
> 
> I don't think so; but I think it would be a useful part of the iterator 
> proposal. The iterator case really gives it some strength.

I thought about it [no, not that long I needed to answer this mail...] and 
there are certain issues with this:

At first, "const function" would tell us that the function does not change the 
object in any way, right? But this is bad for an iterator: Suppose, you want to 
replace some value in your iteration set, it wouldn't be allowed via the "const 
function" and calling "non-const" functions wouldn't be allowed inside the 
for-loop, because it could destabilize the iterator.

For an iterator to work properly, the called functions should guaranteed that 
neither size nor order (perhaps in a stronger version) of the iterated set does 
change. Other values can be changed without problems, so the garantees made by 
a "const"-function would be too strong here, I think...

> If not used 
> by other features it may seem more like a "OO-purity" thing (although 
> that is not per definition bad) ;-).

It could easily be used as optimization. :) If the function is constant (and 
does not access global variables), its result can be replaced by the result of 
a previous call with the same argument (IOW: some notion of a "pure" function).


Vinzent.

-- 
Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3.5 -
sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to