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.
la source
Réponses:
14. Assemblage X86 (gcc 6.3), 324 octets
Essayez sur ideone!
Remarque: ce sera le retour d' une erreur d'exécution car le code de sortie est zéro. En exécutant ceci dans l’éditeur ideone, toutes les sorties stdout seront affichées, quelle que soit la conclusion du programme.
"->Hi, Retina!"
"Bye Retina!"
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.Pour les réponses futures:
.
.->
.Hi, Retina!
."
.la source
a
. Ce programme contient un fichiera
.9. Retina , 16 octets
Essayez-le en ligne!
Si vous voulez essayer votre propre programme, ajoutez-le simplement au champ de saisie, séparé par deux sauts de ligne. (Si votre programme contient deux sauts de ligne, vous devrez changer le séparateur entre tous les programmes et dans l'en-tête TIO.)
Satisfait:
.
e
a
>
personnage->
.Hi, Retina!
.Désolé, mais tu m'as obligé à patauger à la longueur de 16 ...
Sans exigences redondantes:
.
->
.Hi, Retina!
.Explication
Commencer par
.
est correct, cela signifie simplement que nous supprimons la sortie implicite de Retina (à condition que la première ligne ait une configuration, mais je ne voulais pas de programme à deux lignes). Cela signifie que nous avons besoin d'une sortie explicite, mais l'option est la suivante>
: nous avons donc de la chance. Le-
peut aller devant parce qu'il ne fait rien.Nous pouvons maintenant accéder au programme lui-même. La chose la plus simple à faire est de faire correspondre une chaîne littérale. Il est garanti que cela apparaîtra dans notre programme, nous pouvons facilement nous assurer que cela ne fait pas partie d'un programme existant, et cela nous donne un chiffre. Cependant, il pourrait éventuellement renvoyer un nombre supérieur à 1 (donc plus de deux valeurs différentes). Nous évitons cela avec le
0
-limit qui ne regarde que le premier match et le comptabilise s'il existe. Ainsi,0
cela garantit que la sortie est uniquement jamais0
ou1
(selon que l’entrée contient la chaîne littérale).En ce qui concerne la chaîne littérale ... eh bien, nous avons encore besoin d'inclure un
e
et una
... et nous avons besoin que la chaîne ait au moins 11 caractères, de sorte que nous remplissions les exigences de longueur (obtenir un carré pair).Hi, Retina!
arrive à satisfaire ces exigences.la source
13. Perl 5 , 64 octets
Essayez-le en ligne!
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.Résumé pour les réponses futures:
.
.->
.Hi, Retina!
."
.Vérification Ruby script
la source
a
. Ce programme contient un fichiera
.25, Octave , 196 octets
Nouvelle exigence: pour éviter la discussion onglet contre espaces, les onglets ne peuvent plus être utilisés pour l'indentation. Chaque ligne nécessite toujours une tabulation, mais il ne peut s'agir du premier caractère de la ligne.
Vérifiez tous les programmes en ligne!
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.~
.C
Pour les réponses futures:
.
, de même que le 21ème caractère (règle palindromique)."
, de même que le 12ème (règle palindromique).',1;6
et Tab).~
.->
,Hi, Retina!
etHenry Jams?
.|
,+
etC
..
et 2"
dans la première ligne, et!
dans leHi, Retina!
. Ces caractères ne peuvent être utilisés nulle part ailleurs, sans aucune utilisation de#$[\]
.Explication:
Il était en fait un peu difficile de garder cette taille à 196 octets, car de nombreux octets sont maintenant obligatoires sur chaque ligne.
La première ligne est simplement un scalaire non généré, suivi d'un commentaire. La deuxième ligne est une fonction anonyme qui prend une chaîne en
x
tant qu'entrée et effectue les opérations suivantes:Heureusement, l'opération de court-circuit
&&
est prioritaire&
et1&&find
ne nécessite pas de parenthèses. Sinon, je ne parviendrais pas à jouer au golf jusqu'à 196 octets.la source
5. Python 3 , 64 octets
Essayez-le en ligne! Vérifie si la longueur de l'entrée est un carré parfait.
Celui-ci avait été mis à jour au moment où 18 réponses étaient présentes pour prendre en charge les entrées multilignes.
La mise à jour ne fait pas mal à la chaîne.
Satisfait:
.
e
la source
11. JavaScript (ES6), 36 octets
Essayez-le en ligne!
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.Pour les réponses futures:
.
.->
.Hi, Retina!
."
.la source
23, lettré Haskell , 196 octets
Nouvelle exigence: l'indentation est excellente, chaque ligne doit donc contenir au moins un caractère de tabulation.
Essayez-le en ligne!
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.~
.C
Pour les réponses futures:
.
, de même que le 21ème caractère (règle palindromique)."
, de même que le 12ème (règle palindromique).',1;6
et Tab).~
.->
.Hi, Retina!
etHenry Jams?
.|
,+
etC
..
et 2"
dans la première ligne, et!
dans leHi, Retina!
. Ces caractères ne peuvent être utilisés nulle part ailleurs, sans aucune utilisation de#$[\]
.la source
27. GolfScript , 144 octets
Essayez-le en ligne!
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.~
.C
Pour les réponses futures:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(vous êtes libre de remplir les s).',16;
, ou un onglet, ou l'un de\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
etHenry Jams?
.|
,+
etC
.!".#$[\]
sont interdits sauf si nécessaire:!
enHi, Retina!
et les deux.
et deux"
dans la première ligne sont autorisés.tab
, (peu importe) ,~
.la source
12. V , 36 octets
Essayez-le en ligne!
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.Pour les réponses futures:
.
.->
.Hi, Retina!
."
.la source
21. Alphuck , 676 octets
Étonnamment, la plupart du code n'est pas un remplissage.
Essayez-le en ligne!
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.~
.Pour les réponses futures:
.
, de même que le 21ème caractère (règle palindromique)."
, de même que le 12ème (règle palindromique).',1;6
et Tab).~
.->
.Hi, Retina!
etHenry Jams?
.|
et+
..
et 2"
dans la première ligne, et!
dans leHi, Retina!
. Ces caractères ne peuvent être utilisés nulle part ailleurs, sans aucune utilisation de#$[\]
.la source
26. Brainfuck à modification automatique (SMBF), 256 octets
Le dernier caractère doit être un onglet.
Imprime
\x00
pour la vérité et les sorties\x00\x01
pour Falsey. Se termine toujours par une erreur due à un support inégalé. Cela empêche toute entrée d'être exécutée dynamiquement.Ce programme ne fonctionne que dans l' interpréteur Python . NE FONCTIONNE PAS SUR TIO. En effet, l'interpréteur Python EOF est NUL.
Pour utiliser l'interpréteur Python, collez ce code dans la ligne où
data
est défini. Cela devait être fait, car TIO n'a pas de moyen facile de taper ou d'entrer des octets NUL, donc j'utilise toujours Ideone. Puis décommentezsys.stdin = MySTDIN("<[.<]")
et remplacez l'entrée personnalisée par celle que vous testez.Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.~
.C
Pour les réponses futures:
.
, de même que le 21ème caractère (règle palindromique)."
, de même que le 12ème (règle palindromique).',1;6
et Tab).~
.->
,Hi, Retina!
etHenry Jams?
.|
,+
etC
..
et 2"
dans la première ligne, et!
dans leHi, Retina!
. Ces caractères ne peuvent être utilisés nulle part ailleurs, sans aucune utilisation de#$[\]
.la source
28. alphabète alphabétique , 256 octets
Essayez-le en ligne!
Pilote d'essai
Satisfait
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.~
.C
>
dans le code et les renforts d'angle doivent être équilibrésPour les réponses futures:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(vous êtes libre de remplir les s).',16;
, ou un onglet, ou l'un de\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
etHenry Jams?
.|
,+
etC
.!".
sont interdits sauf si nécessaire:!
enHi, Retina!
et les deux.
et deux"
dans la première ligne sont autorisés.#$[\]
peut ne pas apparaître dans le programme.tab
, (peu importe) ,~
.la source
1
amende lorsque je ne commente pas cette ligne (bien qu'il puisse utiliser un; echo
car il n'y a pas de nouvelle ligne dans la sortie)29. PHP avec
-r
, 256 octetsNe pas pouvoir utiliser
$
cela rendait la tâche assez difficile. Dans ma solution initiale, je comprenais mal la règle, mais je pense que tout est couvert maintenant. J'ai utilisé des caractères avec un nombre d'octets élevé,~
eteval
pour contourner le manque de variables décentes pour PHP. J'ai presque atteint le nombre minimum de points de code uniques 96, mais j'ai pensé que cela pourrait rendre les choses un peu trop difficiles pour certaines langues.Voici un vidage hexadécimal réversible pour vérification également.
Essayez-le en ligne!
Pilote d'essai
Satisfait
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.~
.C
>
dans le code et les renforts d'angle doivent être équilibrés.Pour les réponses futures:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(vous êtes libre de remplir les s).',16;
, ou un onglet, ou l'un de\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
etHenry Jams?
.|
,+
etC
.!".
sont interdits sauf si nécessaire:!
enHi, Retina!
et les deux.
et deux"
dans la première ligne sont autorisés.#$[\]
peut ne pas apparaître dans le programme.tab
, (peu importe) ,~
.la source
30. > <> avec
-v 0 -v 0
324 octets1
est la vérité, chaîne vide est falseyEssayez-le en ligne!
Satisfait
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.~
.C
>
dans le code et les renforts d'angle doivent être équilibrés.Pour les réponses futures:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(vous êtes libre de remplir les s).',16;
, ou un onglet, ou l'un de\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
etHenry Jams?
.|
,+
etC
.!".
sont interdits sauf si nécessaire:!
enHi, Retina!
et les deux.
et deux"
dans la première ligne sont autorisés.#$[\]
peut ne pas apparaître dans le programme.tab
, (peu importe) ,~
.la source
1. Ajouter ++ , 7 octets
Essayez-le en ligne!
Peut-être aussi bien ajouter Add ++ avant que les choses ne deviennent difficiles. C'est très simplement une traduction du premier exemple en Add ++.
D,f,@,1
définit une fonction qui, quel que soit l'argument donné, retourne1
.la source
4. empilés , 10 octets
Essayez-le en ligne!
Vérifie si la durée du programme est égale. Fonction anonyme qui renvoie les
1
entrées "vraies" et les entrées0
"fausses".Satisfait:
.
e
la source
f out
par ce que vous voulez tester. Enveloppant des guillemets simples, échappez à une seule citation en la doublant24, SNOBOL4 (CSNOBOL4) , 256 octets
Essayez-le en ligne!
Imprime
1
pour la vérité et ne génère rien pour Falsey.Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.~
.C
Pour les réponses futures:
.
, de même que le 21ème caractère (règle palindromique)."
, de même que le 12ème (règle palindromique).',1;6
et Tab).~
.->
,Hi, Retina!
etHenry Jams?
.|
,+
etC
..
et 2"
dans la première ligne, et!
dans leHi, Retina!
. Ces caractères ne peuvent être utilisés nulle part ailleurs, sans aucune utilisation de#$[\]
.la source
2. Triangularité , 17 octets
Essayez-le en ligne!
Vérifie si le premier caractère est un point (
.
).la source
.3
ou similaire fonctionnerait8. R , 64 octets
Essayez-le en ligne!
Satisfait:
.
e
a
>
personnage->
dans l'une de ses lignes.la source
10. Somme , 64 octets
Essayez-le en ligne!
Vérifiez-le en ligne!
Satisfait:
.
e
a
>
personnage->
.Hi, Retina!
.Pour les réponses futures:
.
->
.Hi, Retina!
.la source
7. Whispers , 66 octets
Essayez-le en ligne!
Sorties soit
True
ouFalse
. Notez la nouvelle ligne de fuite.Satisfait:
.
e
a
>
personnagela source
∈
est un caractère multi-octets, et je crois que la soumission Python compte les octets.3. Gelée , 5 octets
Essayez-le en ligne!
Vérifie si l'entrée contient un
e
caractère. Changé de”
àe
parce que cela semblait injuste aux langues sans ce caractère. Et, pour vérifier, voici un hexdump:Satisfait:
.
e
la source
18. Python 3 , 144 octets
Essayez-le en ligne!
Sortie
True
si l'entrée est longue d'au moins 28 lignes,False
sinon.Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.Pour les réponses futures:
.
.->
.Hi, Retina!
."
, de même que le douzième caractère (règle palindromique).?
.|
.+
.la source
16: Quarterstaff , 64
1 est la vérité,
Essayez-le en ligne!
l'indentation ne fait rien, au fait.
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
Pour les réponses futures:
.
.->
.Hi, Retina!
."
, de même que le douzième caractère (règle palindromique).?
.|
la source
a
, ceci est dû à la façon dont pyth prend les entrées. Il semble que le PO ait commis une erreur en écrivant ou en analysant son propre code. Deux réponses précédentes ont également ce problème.15. Python 3, 64 octets
Essayez-le en ligne!
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.Pour les réponses futures:
.
.->
.Hi, Retina!
."
.?
.la source
31. Octave , 324 octets
Nouvelle exigence: Tous les codes ASCII imprimables qui ne sont pas interdits auparavant doivent faire partie du code. La liste complète est:
!"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
.Essayez-le en ligne!
e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.~
.C
>
dans le code et les renforts d'angle doivent être équilibrés.!"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
Pour les réponses futures:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(vous êtes libre de remplir les s).',16;
, ou un onglet, ou l'un de\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
etHenry Jams?
.!".
sont interdits sauf si nécessaire:!
enHi, Retina!
et les deux.
et deux"
dans la première ligne sont autorisés.#$[\]
peut ne pas apparaître dans le programme.tab
, (peu importe) ,~
.!"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
.la source
6. Pyth , 16 octets
Essayez-le ici!
Vérifie si l'entrée contient un
a
. Sorties soit:[True, True, True, True, True, True, True, True, True, True, True, True, True]
pour la véritéou
[False, False, False, False, False, False, False, False, False, False, False, False, False]
pour faussetéSatisfait:
.
e
a
la source
a
est dans la première ligne. Au moins 2 réponses sont fausses car cela ne correspond pas à ce que dit le texte de cette réponse (et les gens ne testent pas leurs réponses).20. Gelée , 100 octets
Ce code vérifie si oui ou non
Henry Jams?
. Retourne1
pour la vérité,0
pour la fausseté.Essayez-le en ligne!
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.Pour les réponses futures:
.
, de même que le 21ème caractère (règle palindromique).->
.Hi, Retina!
."
, de même que le douzième caractère (règle palindromique).?
.|
.+
.!"#$.[\]
..
et 2"
dans la première ligne, et!
dans leHi, Retina!
. Ces caractères ne peuvent être utilisés nulle part ailleurs, sans aucune utilisation de#$[\]
.Henry Jams?
une sous-chaîne continue.la source
22 octave , 100 octets
Résumé: Il doit maintenant y avoir une majuscule
C
dans le code.Essayez-le en ligne!
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Henry Jams?
tant que sous-chaîne continue.~
.C
Pour les réponses futures:
.
, de même que le 21ème caractère (règle palindromique)."
, de même que le 12ème (règle palindromique).',1;6
et Tab).~
.->
.Hi, Retina!
etHenry Jams?
.|
,+
etC
..
et 2"
dans la première ligne, et!
dans leHi, Retina!
. Ces caractères ne peuvent être utilisés nulle part ailleurs, sans aucune utilisation de#$[\]
.la source
19, octave , 196 octets
Remarque: j'ai modifié le code pour corriger une erreur. Le seul changement consistait à inclure la règle du palindrome. Cela évite un faux positif pour la réponse 10.
Jusqu'à présent, la plupart des exigences peuvent facilement être contournées à l'aide de commentaires et de chaînes supprimées, ce qui rend l'ajout de réponses trivial. Je pensais que je le rendrais un peu plus difficile en refusant certains personnages à la place.
Essayez-le en ligne!
Satisfait:
.
.e
.a
.>
personnage.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
le point de code du deuxième caractère est inférieur à 60.Pour les réponses futures:
.
, de même que le 21ème caractère (règle palindromique).->
.Hi, Retina!
."
, de même que le douzième caractère (règle palindromique).?
.|
.+
.!"#$.[\]
..
et 2"
dans la première ligne, et!
dans leHi, Retina!
. Ces caractères ne peuvent être utilisés nulle part ailleurs, sans aucune utilisation de#$[\]
.la source
This will probably be more fun if you try to maximize your own score rather than "win" the challenge.
.
avant qu'une autre réponse ne soit due? comme la première ligne est palindrome, il ne laisse que 3 points, ce qui est presque impossible dans la plupart des langs verbaux POO. aussi 5"
et `` rend presque impossible la création de chaînes multilignes