My Adventure Writing My First Quine in Java (blogs.adobe.com) 18 points by circuitbreaker 15y ago ↗ HN
[–] snprbob86 15y ago ↗ I consider this totally cheating: $ python quine.py import sys print open(sys.argv[0]).read(), [–] wh-uws 15y ago ↗ I couldn't do python for a long time because it made me feel guilty all the time.Sometimes writing python literally feels like taking candy from a baby [–] [deleted] 15y ago ↗ (comment deleted) [–] GrooveStomp 15y ago ↗ This misses the point of a Quine. You haven't written the code to generate the string, you've used an external library that someone else wrote to do that job for you.I made this mistake the first time I tried too. [–] snprbob86 15y ago ↗ Oh I know, hence I called it "cheating"
[–] wh-uws 15y ago ↗ I couldn't do python for a long time because it made me feel guilty all the time.Sometimes writing python literally feels like taking candy from a baby
[–] GrooveStomp 15y ago ↗ This misses the point of a Quine. You haven't written the code to generate the string, you've used an external library that someone else wrote to do that job for you.I made this mistake the first time I tried too. [–] snprbob86 15y ago ↗ Oh I know, hence I called it "cheating"
[–] s3graham 15y ago ↗ A friend wrote a neat C one a while back: http://dwcope.freeshell.org/projects/spinningquine/
[–] daniel-cussen 15y ago ↗ In Lisp they're pretty easy:((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))returns itself (note: written in Clisp; I've had issues with Lispworks doing things properly). You can also stuff messages in there pretty easily:((lambda (x y) (list x (list 'quote x) y)) '(lambda (x y) (list x (list 'quote x) y)) "Hello, world")
[–] mncaudill 15y ago ↗ Here's a PHP->C->Python->JavaScript->original PHP quine I wrote a few weeks ago: https://gist.github.com/749686And here's a little write-up on how I approached the problem: https://nolancaudill.com/2011/01/01/how-to-build-a-quine/
[–] istjohn 15y ago ↗ Python (triple quotes make this too easy): def q(s): print(s+'q(""' '"'+s+'"' '"")') q("""def q(s): print(s+'q(""' '"'+s+'"' '"")') """)
9 comments
[ 3.0 ms ] story [ 43.9 ms ] threadSometimes writing python literally feels like taking candy from a baby
I made this mistake the first time I tried too.
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
returns itself (note: written in Clisp; I've had issues with Lispworks doing things properly). You can also stuff messages in there pretty easily:
((lambda (x y) (list x (list 'quote x) y)) '(lambda (x y) (list x (list 'quote x) y)) "Hello, world")
And here's a little write-up on how I approached the problem: https://nolancaudill.com/2011/01/01/how-to-build-a-quine/