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.

Reply via email to