mixin identifiers concept
bauss
jj_1337 at live.dk
Mon Jan 31 07:19:49 UTC 2022
On Saturday, 29 January 2022 at 21:24:09 UTC, mesni wrote:
> ```d
> static foreach(name; ["boo", "foo"]){
> string file_#name = readText(name~".txt");
> string file_#name#_info = readText(name~".meta");
> auto ##name = file_#name#_info.parseInfoFile;
> }
>
> writeln(file_boo);
> writeln(boo);
> writeln(file_foo_info);
> ```
> To make it easier to read/write code in D, I would introduce
> new mixins. These mixins can only represent identifiers. Also,
> the advantage of such mixins, the parser and semantic analysis
> will be able to detect some errors before the code is
> completely "opened". Also, I think they can speed up
> compilation.
I believe a DIP would be necessary, but to be honest I don't see
a reason for this.
You can just do this which isn't really much less readable.
```d
static foreach (name; ["boo", "foo"])
{
mixin(`string file_%1$s =
readText("%1$s.txt");`.format(name));
}
writeln(file_boo);
writeln(file_foo);
```
And if D ever gets interpolated strings then the whole format can
be removed and it could probably become something like this:
```d
static foreach (name; ["boo", "foo"])
{
mixin(i`string file_$name = readText("$name.txt");`);
}
writeln(file_boo);
writeln(file_foo);
```
So personally I don't see a reason for your suggestion to be
added.
I think it's just going to introduce more complexity than it's
worth.
More information about the Digitalmars-d
mailing list