digitalmars.D.learn - Quines
- BCS (6/6) Jul 01 2006 @run time
- Stewart Gordon (7/15) Jul 10 2006 http://smjg.port5.com/wwwep/quines/d.html
- Lutger (4/19) Jul 10 2006 Cool.
- kris (2/34) Jul 10 2006 LOL - Don is The Man :D
- Don Clugston (7/33) Jul 11 2006 You just inspired me to update it to DMD 0.162. It's very simple now,
- Don Clugston (2/14) Jul 11 2006 I just submitted it.
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);
Jul 01 2006
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.
Jul 10 2006
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.
Jul 10 2006
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...LOL - Don is The Man :DBCS 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.
Jul 10 2006
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.
Jul 11 2006
Don Clugston wrote:Lutger wrote:I just submitted it.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.
Jul 11 2006
Don Clugston wrote:Don Clugston wrote:Very cool!Lutger wrote:I just submitted it.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.
Jul 11 2006
In article <e9107c$84j$1 digitaldaemon.com>, Don Clugston says...Don Clugston wrote: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!Lutger wrote:I just submitted it.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.
Jul 11 2006