On 12/4/2013 7:27 AM, H. S. Teoh wrote:
Of course, it's not the *point* of DSLs to be distinct from the host language, but it's a good idea for it to be. Operator overloading that turns + and * into something completely unlike their usual meanings violates the principle of least surprise. A CTFE-string containing + and * interpreted differently is better, because the syntax itself reminds you that something unlike normal D syntax is happening.// (D) It's clear * and + means something different: auto m = input.match(ctRegex!`^a+b*c`); // (C++) What on earth might this mean?! sregex r = (s1= +_w) >> ' ' >> (s2= +_w) >> '!';
Looks like we're on the same wavelength here.
