physis#43
Kedves Erroista,
Csak az számít csalásnak, ha a program beolvassa a saját forráskódját fájlból, és azt írja ki. Tehát pl. egy quine nevű fájlban ha efféle program áll (most itt egy ad hoc képzelt ,,keverék'' programnyelven):
az így ,,csalás'', ez nem számít igazi quine-nak. Az a lényeg, hogy az alábbi problémasorba beleütközzék az ember:
print "";
ez nem jó quine, mert semmit sem ír ki , míg a forráskódja legalábbis egy print-et tartalmaz.
print "print";
ez sem jó quine, mert csak egy "print"-et ír ki, míg a forráskódja ennél azért immár hosszabb.
print "print "print "";
látszik, hogy mindig rendre ,,le vagyunk maradva'' (két printet ír ki, míg a forráskód három ilyen beágyaott printből áll), szóval mindig lemarad a Matrjoska-baba legkülső babája.
A probléma tehát - programnyelvtől függetlenül - alapvetően egy matematikai, logikai kérdés. Erre van megoldás (absztrakt módon lehet úgy tekinteni, hogy tkp. egy függvény fixpontját keressük, de a gyár-tervrajz hasonlat szemléletesebb lehet), és az élet is ezt használja.