Vous êtes chargé d'écrire deux programmes. Le programme A ne doit rien imprimer sur toutes les entrées, sauf lorsque le programme B est entré, auquel cas il doit imprimer 1
. Le programme B doit imprimer 1
sur toutes les entrées, sauf lorsque le programme A est entré, auquel cas il ne doit rien imprimer.
Notation:
- +1 Pour chaque personnage des deux programmes.
- Le score le plus bas l'emporte.
Réponses:
GTB , 25
Exécuté à partir d'une calculatrice TI-84
Programme
A
Programme
B
Explication
`_
Entrez une chaîne@_eq;"
Vérifiez s'il est égal au code source (#
est automatiquement supprimé avec les lettres minuscules)$w;&
Si oui, affichez 1 (sinon rien) [carB
c'est$#w;&
- sinon, affichez 1 (sinon rien)]la source
Bash - 32 caractères
Script A - 16 caractères
Script B - 16 caractères
Usage
la source
Rubis, 54
UNE
B
exemples:
la source
J (62)
Puisque vous ne l'avez pas interdit ...
Stockez les programmes comme
A
etB
respectivement.Programme A (30):
Programme B (32):
Comment cela fonctionne (le programme B, A est similaire):
1!:1[3
: lire stdin1!:1<'A'
: lire le fichierA
-:
: voir s'ils sont égaux-.
: annuler le résultat#~
: réplique le résultat par lui-même (donc,1
résulte en un1
et0
résulte en zéro0
s, c'est-à-dire rien)echo
: productionexit
: exit (l'interpréteur J ne quitte pas par défaut lorsqu'il atteint la fin du fichier)la source
Haskell - SANS source de chargement - 478
644caractèresCela suppose que getContents se termine TOUJOURS par une nouvelle ligne et supprime donc le caractère final sans vérification car je n'ai pas envie de lui échapper
UNE
B
Cela fonctionne comme un quine standard, mais en échangeant - pour * pour obtenir l'autre programme (en évitant ces caractères ailleurs).
Le test suivant s'imprime comme prévu (en remplaçant main = interact $ par a = et b =)
-
la source
Python 2.7 - 82
Fichier A (littéralement nommé juste
a
):Fichier B (littéralement nommé juste
b
):la source
.py
- ça marche même?python a
.touch a
créera un fichier vide si vous avez des autorisations. Pour un plaisir encore plus cruel, vous pouvez mêmetouch \~
créer un fichier nommé avec un seul tilde (~
) - puis regardez quelqu'un essayer de le supprimer sansRuby, 166 caractères, pas de source de lecture
UNE:
B:
Assurez-vous que votre éditeur de texte n'enregistre pas avec une nouvelle ligne de fin.
Utilisation (exemple):
Chaque programme construit la source de l'autre programme à l'aide d'un HEREdoc et de transformations de chaîne, puis compare le résultat à l'entrée.
la source
p
est une méthode ruby intégrée qui imprime les arguments qui lui sont passés, puis retourne ces arguments, ce qui la rend utile pour la sortie golfée. Lorsqu'il est appelé sans arguments, il renvoie nil. L'argument togets
est un délimiteur, donc le passagep
entraîne un délimiteur nul, ce qui signifie qu'il lit STDIN jusqu'à ce qu'il atteigne EOF. L'expression heredoc est<<2
, donc elle se termine à (et n'inclut pas), le 2 à la fin du fichier.2
délimiteur hérédoc est un peu d'obscurcissement traditionnel. Il peut s'agir de presque n'importe quelle chaîne.Haskell - 138
Pas vraiment une bonne réponse, mais je voulais que les deux programmes utilisent la même source. Pourrait enregistrer certains caractères en renommant le fichier, mais cela ne va pas en faire une solution gagnante, donc je ne pense pas que cela en vaille la peine.
Compilez cette source en tant que
A
etB
.Tester:
la source
A
, puis copierA
versB
?Node.js - 142 caractères
Script
|
(autrement appelé Script A) - 80 caractèresScript
&
(également appelé Script B) - 62 caractèresUsage
La description
Le script B lit le contenu du script A et l'évalue après avoir échangé les noms de fichier et l'
and
opérateur vers unor
.J'ai nommé les fichiers
&
et|
je peux donc effectuer un seul remplacement dans le script B.la source
Python 3 - 102 caractères
Imprime 1 si l'entrée est identique au programme 2, sinon rien:
Imprime 1 si l'entrée n'est pas identique au programme 1, sinon rien:
la source
bash / grep - 59 caractères
51 caractères si l'on ne compte que la chaîne de programme réelle.
la source
R (62 caractères)
produit:
Meta comment: R est relativement mauvais sur le golf de code car il n'y a pas de raccourci vers
function
...la source