Re: Quine
ich habs mir angeschaut !
Den Sinn versteh ich aber trotzdem nicht .. !!! :| da, mein Einzeiler
Code:
program a;{$APPTYPE CONSOLE}const b='program a;{$APPTYPE CONSOLE}const a=begin end.';begin write(b) end.
|
Re: Quine
Ein Programm, welches ihren Quelltext ausgibt.
|
Re: Quine
Und ? Was soll das bringen ?
Man programmiert doch nichts, was man nicht braucht ... ! |
Re: Quine
Wenn der Weg das Ziel ist schon ...
|
Re: Quine
Zitat:
|
Re: Quine
Hi,
das macht einfach mal Spaß. Da fühlt man sich gleich häppi und is viel besser als Drogen :mrgreen: Der Sinn ist es, was lustiges zu tun. Am einfachsten geht es natürlich in HQ9+:
Code:
Mein erster Gedanke war es, einen HQ9+-Interpreter zu programmieren. Dann habe ich stattdessen einen Quine in Delphi geschrieben. Nur so, einfach als Gag, und weil ich in der DP noch keinen gefunden habe. Sowas darf doch nicht fehlen! :stupid:
Q
Mfg FAlter [edit] Nachtrag: Zitat:
jaa, was dein Programm ausgibt, lässt sich nicht mal compilieren:
Delphi-Quellcode:
Wenn du die Ausgabe meines Programmes compilierst, erhältst du wieder mein Programm, das ist ein Quine. Es gehört schon ein wenig denken dazu, daher musste ich ja den String in sich selbst so komisch einfügen.
program a;{$APPTYPE CONSOLE}const a=begin end.
Einen Fehler hab ich allerdings gemacht :oops:
Code:
Naja, ist schnell geändert... werds gleich mal korrigieren.
program Quine; {$APPTYPE CONSOLE} var x: String = 'program Quine; {$APPTYPE CONSOLE} var x: String = ; begin Insert(#39 + x + #39, x, [b]50[/b]); writeln(x); readln; end.'; begin Insert(#39 + x + #39, x, [b]51[/b]); writeln(x); readln; end.
[/edit] |
Re: Quine
ups, hab mich beim zusammenkopieren vertan :oops: :
Edit: so müsste es passen:
Code:
Obwohl .. das ist auch gemogelt .. in b in b steht nicht der code drinnen... geht ja auch nicht xD
program a;{$APPTYPE CONSOLE}const b='program a;{$APPTYPE CONSOLE}const b='''';begin write(b); readln end.';begin write(b) end.
|
Re: Quine
Das sind alles keine Quines! Sie geben nicht den eigenen Quelltext aus, also treffen sie nicht die Definition ;)
Das ist ein Quine:
Delphi-Quellcode:
program Quine; uses SysUtils; {$APPTYPE CONSOLE} const text = 'program Quine; uses SysUtils; {$APPTYPE CONSOLE} const text = ''~''; begin Write(StringReplace(''~'', text, [])); end.'; begin Write(StringReplace('~', text, [])); end.
|
Re: Quine
Hi,
meine Quines kommen ohne die SysUtils aus (nur System!). Und sie geben wirklich den eigenen Quelltext aus! Hast du dir die Ausgaben überhaupt angesehen? Quelltext:
Delphi-Quellcode:
Ausgabe:
program Quine; {$APPTYPE CONSOLE} var x: String = 'program Quine; {$APPTYPE CONSOLE} var x: String = ; begin Insert(#39 + x + #39, x, 51); writeln(x); readln; end.'; begin Insert(#39 + x + #39, x, 51); writeln(x); readln; end.
Code:
Bei der anderen Fassung fehlen noch die beiden readln; (im String und die Anweisung).
program Quine; {$APPTYPE CONSOLE} var x: String = 'program Quine; {$APPTYPE CONS
OLE} var x: String = ; begin Insert(#39 + x + #39, x, 51); writeln(x); readln; e nd.'; begin Insert(#39 + x + #39, x, 51); writeln(x); readln; end. Nur was mr_emre_d versucht, sind bisher keine Quines gewesen. Mit Konstanten gehts auch nicht, denn es muss ja irgendwie das ganze nochmal dazwischengemogelt werden*. Es sei denn, die Sprache erlaubt den Zugriff auf den Quelltext (was aber i. d. R. nur für Interpretersprachen gilt, und selbst da nicht für alle). Mfg FAlter *) Ok, wenn es zuweisbare Konstanten sind, schon... Dieses uralte TP-Überbleibsel gibts ja auch noch. |
Re: Quine
Bist du dir sicher, dass es mit Konstanten nicht geht? Ich habe das zwar nicht ganz durchdacht, aber es müsste mit for-Schleifen möglich sein.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz