mixin functions

Gor Gyolchanyan gor.f.gyolchanyan at gmail.com
Thu Nov 1 08:58:53 PDT 2012


OR, better yet:

mixin MyMixin
{
    foreach(i; 0..10)
        MyMixin ~= "writeln(" ~ to!string(i); ~ ");\n"'
}

And this could be printed out as a pragma(msg, ...) or into a .log file or
anywhere else. This way it's easy to see what did end up being mixed in.


On Thu, Nov 1, 2012 at 7:55 PM, Gor Gyolchanyan <gor.f.gyolchanyan at gmail.com
> 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?
>
> --
> Bye,
> Gor Gyolchanyan.
>



-- 
Bye,
Gor Gyolchanyan.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20121101/9bdc7a30/attachment.html>


More information about the Digitalmars-d mailing list