On Mon, 15 Dec 2008 17:48:21 -0500, mastrost <titi.mas...@free.fr> wrote:
int delegate() getPureFunction(int x){
int bar(){
return x;
}
return &bar;
}
int delegate() getPureFunction(int x){
int bar(){
return x++; // no longer pure
}
return &bar;
}
In this example, myPureFunction looks like a pure function, does it?
No it doesn't, but on the other hand, pure member functions argue that
pure delegates are reasonable and useful. (i.e. delegates tagged as pure
and then checked for references to non-pure data)
This was my first question. The second one concerns purity and parallel
programming. Is dmd 2.022 implementing some kind of parallelism thanks
to pure
function? In fact I have been argued that "pure" keyword is not enough
for the
compiler to make an efficient parallel program. The problem would be
that the
compiler has no mean to know the granularity of the tasks. What are your
feelings
about that?
I'd say that you're unlikely to get an optimal parallel program, but there
already exists several functional languages (i.e. pure) that automatically
parallelize their code bases quite efficiently.