Thread overview | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
July 01, 2006 Quines | ||||
---|---|---|---|---|
| ||||
@run time void main(){printf(a~\140~a~\140";");}char[]a=`void main(){printf(a~\140~a~\140";");}char[]a=`; @compile time =op const char[]a=`const char[]a=`;const char[]b=`;const char[]`;const char[]c=`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c); |
July 10, 2006 Re: Quines | ||||
---|---|---|---|---|
| ||||
Posted in reply to BCS | BCS wrote: > @run time > > void main(){printf(a~\140~a~\140";");}char[]a=`void main(){printf(a~\140~a~\140";");}char[]a=`; http://smjg.port5.com/wwwep/quines/d.html Somewhere I've got one similar to the last of these but using writef. > @compile time =op > > const char[]a=`const char[]a=`;const char[]b=`;const char[]`;const char[]c=`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c); Writing code to do stuff at compile time like this is an interesting idea. I've seen the C preprocessor used for this: http://www.99-bottles-of-beer.net/language-c-c++-preprocessor-115.html Stewart. |
July 10, 2006 Re: Quines | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stewart Gordon | Cool. Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d from Don Clugston's meta library. No need for a preprocessor... In article <e8to1l$180u$1@digitaldaemon.com>, Stewart Gordon says... > >BCS wrote: >> @run time >> >> void main(){printf(a~\140~a~\140";");}char[]a=`void main(){printf(a~\140~a~\140";");}char[]a=`; > >http://smjg.port5.com/wwwep/quines/d.html > >Somewhere I've got one similar to the last of these but using writef. > >> @compile time =op >> >> const char[]a=`const char[]a=`;const char[]b=`;const char[]`;const char[]c=`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c); > >Writing code to do stuff at compile time like this is an interesting idea. I've seen the C preprocessor used for this: > >http://www.99-bottles-of-beer.net/language-c-c++-preprocessor-115.html > >Stewart. |
July 10, 2006 Re: Quines | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lutger | Lutger wrote:
> Cool. Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d
> from Don Clugston's meta library. No need for a preprocessor...
>
> In article <e8to1l$180u$1@digitaldaemon.com>, Stewart Gordon says...
>
>>BCS wrote:
>>
>>>@run time
>>>
>>>void main(){printf(a~\140~a~\140";");}char[]a=`void main(){printf(a~\140~a~\140";");}char[]a=`;
>>
>>http://smjg.port5.com/wwwep/quines/d.html
>>
>>Somewhere I've got one similar to the last of these but using writef.
>>
>>
>>>@compile time =op
>>>
>>>const char[]a=`const char[]a=`;const char[]b=`;const char[]`;const char[]c=`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);
>>
>>Writing code to do stuff at compile time like this is an interesting idea. I've seen the C preprocessor used for this:
>>
>>http://www.99-bottles-of-beer.net/language-c-c++-preprocessor-115.html
>>
>>Stewart.
>
>
>
LOL - Don is The Man :D
|
July 11, 2006 Re: Quines | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lutger | Lutger wrote: > Cool. Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d > from Don Clugston's meta library. No need for a preprocessor... You just inspired me to update it to DMD 0.162. It's very simple now, all the workarounds are gone. It's probably worth submitting to 99-bottles-of-beer.net now. And yes, D templates seem to be even more powerful than the combination of C preprocessor + C++ templates. -Don. > > In article <e8to1l$180u$1@digitaldaemon.com>, Stewart Gordon says... >> BCS wrote: >>> @run time >>> >>> void main(){printf(a~\140~a~\140";");}char[]a=`void main(){printf(a~\140~a~\140";");}char[]a=`; >> http://smjg.port5.com/wwwep/quines/d.html >> >> Somewhere I've got one similar to the last of these but using writef. >> >>> @compile time =op >>> >>> const char[]a=`const char[]a=`;const char[]b=`;const char[]`;const char[]c=`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c); >> Writing code to do stuff at compile time like this is an interesting idea. I've seen the C preprocessor used for this: >> >> http://www.99-bottles-of-beer.net/language-c-c++-preprocessor-115.html >> >> Stewart. > > |
July 11, 2006 Re: Quines | ||||
---|---|---|---|---|
| ||||
Posted in reply to Don Clugston | Don Clugston wrote:
> Lutger wrote:
>> Cool. Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d
>> from Don Clugston's meta library. No need for a preprocessor...
>
> You just inspired me to update it to DMD 0.162. It's very simple now, all the workarounds are gone. It's probably worth submitting to 99-bottles-of-beer.net now.
> And yes, D templates seem to be even more powerful than the combination of C preprocessor + C++ templates.
>
> -Don.
I just submitted it.
|
July 11, 2006 Re: Quines | ||||
---|---|---|---|---|
| ||||
Posted in reply to Don Clugston | Don Clugston wrote:
> Don Clugston wrote:
>> Lutger wrote:
>>> Cool. Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d
>>> from Don Clugston's meta library. No need for a preprocessor...
>>
>> You just inspired me to update it to DMD 0.162. It's very simple now, all the workarounds are gone. It's probably worth submitting to 99-bottles-of-beer.net now.
>> And yes, D templates seem to be even more powerful than the combination of C preprocessor + C++ templates.
>>
>> -Don.
>
> I just submitted it.
Very cool!
|
July 12, 2006 Re: Quines | ||||
---|---|---|---|---|
| ||||
Posted in reply to Don Clugston | In article <e9107c$84j$1@digitaldaemon.com>, Don Clugston says... > >Don Clugston wrote: >> Lutger wrote: >>> Cool. Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d from Don Clugston's meta library. No need for a preprocessor... >> >> You just inspired me to update it to DMD 0.162. It's very simple now, >> all the workarounds are gone. It's probably worth submitting to >> 99-bottles-of-beer.net now. >> And yes, D templates seem to be even more powerful than the combination >> of C preprocessor + C++ templates. >> >> -Don. > >I just submitted it. Awesome. Although if I look at the top 3 of the site I'm not sure if it would speak for D to end up there, that is some painful code! |
Copyright © 1999-2021 by the D Language Foundation