Quines

Lutger Lutger_member at pathlink.com
Mon Jul 10 15:14:32 PDT 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 at 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.





More information about the Digitalmars-d-learn mailing list