Am new to D programming, am considering it since it supports compile-time function execution . My challenge is how can I re-implement the function below so that it is fully executed in compile-time. The function should result to tabel1 being computed at compile-time. There seems to be a lot of mutation happening here yet I have heard no mutation should take place in meta-programming as it subscribes to functional programming paradigm.


void computeAtCompileTime( ref string pattern ,ref int[char] tabel1){
        int size = to!int(pattern.length) ;
        
        foreach( c; ALPHABET){
                tabel1[c] = size;
        }
        
        for( int i=0;i<size -1 ; ++i){   //Initialise array
                tabel1[pattern[i]] = size -i-1;

pragma(msg, format("reached pattern table1[pattern[i]]=(%s) here", table1[pattern[i]].stringof ~" v="~ (size -i-1).stringof));
        }

        
        
        
}

Reply via email to