April 26, 2017
On Thu, Apr 27, 2017 at 12:15:32AM +0000, Jon Degenhardt via Digitalmars-d wrote:
> On Wednesday, 26 April 2017 at 23:19:32 UTC, H. S. Teoh wrote:
> > ------hello.d:------
> > import std.stdio;void main(){write(import("hello.d"));}
> > --------------------
> > 
> > Thanks to string imports, quines in D are actually trivial. :-D
> > 
> > 
> > T
> 
> :)  https://en.wikipedia.org/wiki/Quine_(computing)#.22Cheating.22_quines

Technically, the *program* itself takes no input, because string imports happen at compile-time, and the program's source is in fact embedded in the executable, not read at runtime. So technically it's not cheating. :-P

But of course, it's in the "spirit of cheating" because it actually avoids the insight that comes with actually writing a quine without using string imports.

And on that note, an actual cheating quine for D would be the blank .d file: because compiling with dmd -main produces an executable that writes no output (i.e., output of length zero, identical to the source code).


T

-- 
If creativity is stifled by rigid discipline, then it is not true creativity.
April 27, 2017
On 04/26/2017 11:37 PM, H. S. Teoh via Digitalmars-d wrote:
> On Thu, Apr 27, 2017 at 12:15:32AM +0000, Jon Degenhardt via Digitalmars-d wrote:
>> On Wednesday, 26 April 2017 at 23:19:32 UTC, H. S. Teoh wrote:
>>> ------hello.d:------
>>> import std.stdio;void main(){write(import("hello.d"));}
>>> --------------------
>>>
>>> Thanks to string imports, quines in D are actually trivial. :-D
>
> And on that note, an actual cheating quine for D would be the blank .d
> file: because compiling with dmd -main produces an executable that
> writes no output (i.e., output of length zero, identical to the source
> code).
>

Finally, our killer app!!! :)