Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
May 01, 2015 Calling functions using mixins | ||||
---|---|---|---|---|
| ||||
hi, Is it possible to call functions using mixins in this way? ----- import std.stdio; int fooTestMixin() { return 5; } void main() { enum t { fooTestMixin }; immutable string[] strArr = [ "fooTestMixin" ]; writeln(mixin(`mixin("t.fooTestMixin")`)); writeln(mixin(`mixin("strArr[0]")`)); } |
May 01, 2015 Re: Calling functions using mixins | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dennis Ritchie | On Friday, 1 May 2015 at 21:04:10 UTC, Dennis Ritchie wrote: > hi, > Is it possible to call functions using mixins in this way? > > ----- > import std.stdio; > > int fooTestMixin() { > return 5; > } > > void main() { > > enum t { fooTestMixin }; > immutable string[] strArr = [ "fooTestMixin" ]; > > writeln(mixin(`mixin("t.fooTestMixin")`)); Don't know what you're trying to do here. > writeln(mixin(`mixin("strArr[0]")`)); writeln(mixin(`mixin(strArr[0])`)); or without the pointless outer mixin: writeln(mixin(strArr[0])); > } |
May 01, 2015 Re: Calling functions using mixins | ||||
---|---|---|---|---|
| ||||
Posted in reply to anonymous | On Friday, 1 May 2015 at 21:26:20 UTC, anonymous wrote:
> On Friday, 1 May 2015 at 21:04:10 UTC, Dennis Ritchie wrote:
>> hi,
>> Is it possible to call functions using mixins in this way?
>>
>> -----
>> import std.stdio;
>>
>> int fooTestMixin() {
>> return 5;
>> }
>>
>> void main() {
>>
>> enum t { fooTestMixin };
>> immutable string[] strArr = [ "fooTestMixin" ];
>>
>> writeln(mixin(`mixin("t.fooTestMixin")`));
>
> Don't know what you're trying to do here.
>
>> writeln(mixin(`mixin("strArr[0]")`));
>
> writeln(mixin(`mixin(strArr[0])`));
>
> or without the pointless outer mixin:
>
> writeln(mixin(strArr[0]));
>
>> }
Thanks.
My final goal is to do something like this:
-----
import std.stdio, std.string;
int foo() {
return 5;
}
int bar() {
return 10;
}
void main()
{
immutable string[] s = [ "foo", "bar" ];
writeln(mixin(`format("%(%s, %)", s)`));;
}
|
May 01, 2015 Re: Calling functions using mixins | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dennis Ritchie | On Friday, 1 May 2015 at 21:41:10 UTC, Dennis Ritchie wrote:
> My final goal is to do something like this:
>
> -----
> import std.stdio, std.string;
>
> int foo() {
> return 5;
> }
>
> int bar() {
> return 10;
> }
>
> void main()
> {
> immutable string[] s = [ "foo", "bar" ];
>
> writeln(mixin(`format("%(%s, %)", s)`));;
> }
What's that supposed to do?
|
May 01, 2015 Re: Calling functions using mixins | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dennis Ritchie | On 05/01/2015 02:41 PM, Dennis Ritchie wrote: > immutable string[] s = [ "foo", "bar" ]; > > writeln(mixin(`format("%(%s, %)", s)`));; If you are trying to call those functions, remove the double quotes by %-(, and use %| to specify what is a delimiter. To call, each needs a semicolon: mixin(format("%-(%s();%| %)", s)); If you wanted to print the results of calling those functions, then, yes, use a comma. Also, I think you need to put "writeln" inside as well: mixin(format("writeln(%-(%s(), %));", s)); Ali |
May 01, 2015 Re: Calling functions using mixins | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli | On Friday, 1 May 2015 at 21:50:51 UTC, anonymous wrote: > What's that supposed to do? Excuse me, what is not said. I thought that my wish will be obvious. On Friday, 1 May 2015 at 21:59:31 UTC, Ali Çehreli wrote: > On 05/01/2015 02:41 PM, Dennis Ritchie wrote: > > > immutable string[] s = [ "foo", "bar" ]; > > > > writeln(mixin(`format("%(%s, %)", s)`));; > > If you are trying to call those functions, remove the double quotes by %-(, and use %| to specify what is a delimiter. To call, each needs a semicolon: > > mixin(format("%-(%s();%| %)", s)); > > If you wanted to print the results of calling those functions, then, yes, use a comma. Also, I think you need to put "writeln" inside as well: > > mixin(format("writeln(%-(%s(), %));", s)); > > Ali Thanks. Yes, I wanted to print the results of calling these functions. |
Copyright © 1999-2021 by the D Language Foundation