Die Aufgabe
Schreiben Sie ein Programm in der Sprache Ihrer Wahl, das die Eingabezeilen von der Standardeingabe bis zum EOF liest und sie dann in ASCIIbetical-Reihenfolge in die Standardausgabe schreibt, ähnlich dem sort
Befehlszeilenprogramm. Ein kurzes, nicht zu unterschätzendes Beispiel in Python ist:
import sys
for line in sorted(sys.stdin):
print(line.rstrip('\n'))
Der hinterhältige Teil
Ähnlich wie bei The OS War ist es Ihr Ziel zu beweisen, dass Ihre bevorzugte Plattform "besser" ist, indem Sie Ihr Programm auf einer konkurrierenden Plattform absichtlich viel langsamer ausführen lassen. Für diesen Wettbewerb besteht eine "Plattform" aus einer beliebigen Kombination von:
- Prozessor
- Architektur (x86, Alpha, ARM, MIPS, PowerPC usw.)
- Bitness (64-Bit vs. 32-Bit vs. 16-Bit)
- Big versus Little Endian
- Betriebssystem
- Windows vs. Linux vs. Mac OS usw.
- Verschiedene Versionen desselben Betriebssystems
- Sprachimplementierung
- Verschiedene Compiler / Interpreter-Anbieter (zB MSVC ++ vs. GCC)
- Verschiedene Versionen desselben Compilers / Interpreters
Obwohl Sie die Anforderungen erfüllen könnten, indem Sie Code schreiben wie:
#ifndef _WIN32
Sleep(1000);
#endif
Eine solche Antwort sollte nicht befürwortet werden. Das Ziel ist es, subtil zu sein. Im Idealfall sollte Ihr Code so aussehen, als wäre er überhaupt nicht plattformabhängig. Wenn Sie noch keine haben #ifdef
Aussagen (oder Bedingungen auf der Basis os.name
oder System.Environment.OSVersion
oder was auch immer), sollten sie eine plausible Rechtfertigung haben (basierend auf einer Lüge, natürlich).
Nehmen Sie in Ihre Antwort auf
- Der Code
- Ihre "Lieblings" und "ungünstigen" Plattformen.
- Eine Eingabe, mit der Sie Ihr Programm testen können.
- Die Laufzeit auf jeder Plattform für dieselbe Eingabe.
- Eine Beschreibung, warum das Programm auf der ungünstigen Plattform so langsam ausgeführt wird.