In dieser Herausforderung müssen Sie ein Programm oder eine Funktion schreiben, die einen String als Eingabe verwendet und einen von zwei möglichen Werten ausgibt. Wir werden einen dieser Werte als wahr und einen als falsch bezeichnen . Sie müssen nicht wirklich wahr oder falsch sein . Damit eine Antwort gültig ist, müssen sie vier zusätzliche Kriterien erfüllen
Wenn Sie Ihr Programm an sich selbst übergeben, gibt es den Wahrheitswert aus .
Wenn Sie Ihr Programm als Eingabe an eine ältere Antwort übergeben, sollte diese die wahrheitsgemäße Ausgabe (des Programms, an das Sie übergeben) ausgeben.
Wenn Sie eine ältere Antwort als Eingabe übergeben, sollte diese die falsche Ausgabe (Ihres Programms) ausgeben.
Es muss eine unendliche Anzahl von Zeichenfolgen geben, die in allen Antworten auf die Herausforderung (einschließlich Ihrer neuen Antwort) als wahrheitsgemäße Ausgabe gewertet werden .
Dies führt dazu, dass sich langsam eine Reihe von Antworten aufbaut, von denen jedes bestimmen kann, ob andere Programme in der Kette davor oder danach stehen.
Ziel dieser Herausforderung ist es, eine Liste von Quellenbeschränkungen zu erstellen, die auf die aufeinanderfolgenden Antworten angewendet werden, sodass jede einzelne eine größere Herausforderung darstellt als die letzte.
Beispiel
Eine Kette (in Haskell geschrieben) könnte beginnen:
f _ = True
Da es keine älteren Programme gibt, gelten die Kriterien nicht für diese Antwort. Es muss nur einer von zwei möglichen Werten ausgegeben werden. In diesem Fall wird immer ausgegeben True
.
Folgendes könnte die Antwort sein:
f x=or$zipWith(==)x$tail x
Womit behauptet wird, dass irgendwo in der Zeichenfolge zweimal hintereinander ein Zeichen vorkommt. Die erste Antwort hat diese Eigenschaft nicht, die zweite ( ==
). Somit ist dies eine gültige nächste Antwort.
Sonderregeln
Sie können jede Sprache, die Sie wünschen (die eine frei verfügbare Implementierung hat), so oft verwenden, wie Sie möchten.
Wenn Sie die letzte Person waren, die geantwortet hat, müssen Sie mindestens 7 Tage warten, bevor Sie eine neue Antwort veröffentlichen.
Ihr Programm liest möglicherweise nicht die eigene Quelle.
Da es äußerst schwierig ist, die vierte Regel zu überprüfen, ob es sich um kryptografische Funktionen handelt, sind solche Funktionen nicht zulässig.
Bewertungskriterium
Jedes Mal, wenn Sie eine Antwort hinzufügen, erhalten Sie so viele Punkte wie in der Kette enthalten sind. Zum Beispiel würde die 5. Antwort dem Verfasser 5 Punkte bringen. Ziel ist es, so viele Punkte wie möglich zu sammeln. Bei der letzten Antwort erhält der Antwortende -∞ Punkte. Dies wird wahrscheinlich mehr Spaß machen, wenn Sie versuchen, Ihre eigene Punktzahl zu maximieren, anstatt die Herausforderung zu "gewinnen". Ich werde keine Antwort annehmen.
Da dies eine Antwortverkettung ist , möchten Sie möglicherweise nach den ältesten sortieren