Dans ce défi, vous devez écrire un programme ou une fonction, qui prend une chaîne en tant qu'entrée et génère l'une des deux valeurs possibles. Nous appellerons l'une de ces valeurs la vérité et une la fausseté . Ils n'ont pas besoin d'être réellement véridiques ou faux . Pour qu'une réponse soit valide, elle doit répondre à quatre critères supplémentaires.
Lorsque vous transmettez votre programme à lui-même, il affiche la valeur de vérité .
Si vous transmettez votre programme en tant qu'entrée à une réponse plus ancienne, elle devrait générer la sortie de vérité (du programme auquel vous passez).
Si vous transmettez une réponse plus ancienne à votre réponse en tant qu'entrée, vous devez générer la sortie faussée (de votre programme).
Il doit exister un nombre infini de chaînes qui donnent une impression de vérité dans toutes les réponses au défi (y compris votre nouvelle réponse).
Cela aura pour effet de créer lentement une chaîne de réponses, chacune pouvant déterminer si d'autres programmes de la chaîne interviennent avant ou après.
Le but de ce défi est d’établir une liste de restrictions de sources qui s’appliquent aux réponses successives, rendant ainsi chacune plus difficile que la précédente.
Exemple
Une chaîne (écrite en Haskell) pourrait commencer:
f _ = True
Comme il n'y a pas de programmes plus anciens, les critères ne s'appliquent pas à cette réponse, il suffit de sortir l'une des deux valeurs possibles, dans ce cas, elle est toujours affichée True
.
Après cela pourrait être la réponse:
f x=or$zipWith(==)x$tail x
Ce qui affirme qu'il y a un caractère deux fois de suite quelque part dans la chaîne. La première réponse n'a pas cette propriété alors que la seconde le fait ( ==
). Donc, ceci est une réponse valide suivante.
Règles spéciales
Vous pouvez utiliser la langue de votre choix (mise en œuvre librement disponible) autant de fois que vous le souhaitez.
Si vous êtes la dernière personne à répondre, vous devez attendre au moins 7 jours avant de poster une nouvelle réponse.
Votre programme ne peut pas lire sa propre source.
Étant donné que la 4ème règle est extrêmement difficile à vérifier si des fonctions cryptographiques sont impliquées, ces fonctions sont interdites.
Critère de notation
Chaque fois que vous ajoutez une réponse, vous obtiendrez autant de points que sa place dans la chaîne. Par exemple, la cinquième réponse gagnerait 5 points à son auteur. Le but est d’obtenir le plus de points possible. La dernière réponse marquera son répondeur -∞ points. Ce sera probablement plus amusant si vous essayez de maximiser votre propre score plutôt que de «gagner» le défi. Je n'accepterai pas de réponse.
Comme il s’agit de chaîner les réponses, vous souhaiterez peut-être trier par ordre le plus ancien.