mixin functions

Jacob Carlborg doob at me.com
Thu Nov 1 12:31:30 PDT 2012


On 2012-11-01 16:55, Gor Gyolchanyan wrote:
> I find myself doing this very very often and it pains me to write ugly
> code like this over and over again:
>
> mixin(()=>{
>
>      string result;
>      foreach(i; 0..10)
>          result ~= "writeln(" ~ to!string(i); ~ ");\n"'
>      return result;
>
> }());
>
> All it does is generates a string in a delegate, which is immediately
> called and passed to a mixin.
> Almost all mixins contain generated strings and most if them need a
> dedicated string generator.
> I don't want to propose new syntax, because we all know that new syntax
> is the last thing that will be developed, considering the number of bugs
> out there. The first thing I wanted to do was this:
>
> mixin
> {
>      foreach(i; 0..10)
>          mixin ~= "writeln(" ~ to!string(i); ~ ");\n"'
> }
>
> I'm not suggesting this to be implemented, this is just what I
> automatically wanted to write.
> Anybody else had this kind of thoughts?

I would vote for AST macros instead.

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list