Sie müssen zwei Programme schreiben. Programm A muss auf allen Eingaben nichts ausgeben, außer wenn Programm B eingegeben wird. In diesem Fall sollte es gedruckt werden 1
. Programm B muss 1
auf allen Eingaben gedruckt werden, außer wenn Programm A eingegeben wird. In diesem Fall sollte es nichts drucken.
Wertung:
- +1 Für jedes Zeichen aus beiden Programmen.
- Die niedrigste Punktzahl gewinnt.
Antworten:
GTB , 25
Wird von einem TI-84-Rechner ausgeführt
Programm
A
Programm
B
Erläuterung
`_
Geben Sie eine Zeichenfolge ein@_eq;"
Überprüfen Sie, ob es dem Quellcode entspricht (#
wird automatisch zusammen mit Kleinbuchstaben entfernt)$w;&
Wenn ja, angezeigt werden 1 (sonst nichts) [fürB
sie ist$#w;&
- wenn nicht, Anzeige 1 (sonst nichts)]quelle
Bash - 32 Zeichen
Skript A - 16 Zeichen
Skript B - 16 Zeichen
Verwendung
quelle
Rubin, 54
EIN
B
Beispiele:
quelle
J (62)
Da du das nicht verboten hast ...
Speichern Sie die Programme als
A
undB
jeweils.Programm A (30):
Programm B (32):
Wie es funktioniert (Programm B, A ist ähnlich):
1!:1[3
: lese stdin1!:1<'A'
: Datei lesenA
-:
: sehen, ob sie gleich sind-.
: negiere das Ergebnis#~
: repliziere das Ergebnis von selbst (also1
ergibt es eins1
und0
ergibt null0
s, dh nichts)echo
: Ausgabeexit
: exit (der J-Interpreter wird nicht standardmäßig beendet, wenn das Dateiende erreicht ist)quelle
Haskell - OHNE Ladequelle - 478
644ZeichenDies setzt voraus, dass getContents IMMER mit einem Zeilenumbruch endet und daher das letzte Zeichen ohne Überprüfung entfernt, da ich keine Lust habe, ihm zu entkommen
EIN
B
Es funktioniert wie ein Standard-Quine, tauscht jedoch - gegen *, um das andere Programm zu erhalten (wobei diese Zeichen an anderer Stelle vermieden werden).
Der folgende Test wird wie erwartet gedruckt (Ersetzen von main = interact $ durch a = und b =)
-
quelle
Python 2.7 - 82
Datei A (wörtlich nur genannt
a
):Datei B (wörtlich nur genannt
b
):quelle
.py
- geht das überhaupt?python a
.touch a
wird eine leere Datei erstellt, wenn Sie über Berechtigungen verfügen. Für zusätzlichen grausamen Spaß können Sie sogartouch \~
eine Datei mit dem Namen einer einzelnen Tilde erstellen (~
) - und dann zusehen, wie jemand tollkühn versucht, sie zu entfernen;)Ruby, 166 Zeichen, keine Lesequelle
EIN:
B:
Stellen Sie sicher, dass Ihr Texteditor nicht mit einer nachgestellten Newline speichert.
Verwendung (Beispiel):
Jedes Programm erstellt mithilfe von HEREdoc und String-Transformationen die Quelle des anderen Programms und vergleicht dann das Ergebnis mit der Eingabe.
quelle
p
ist eine integrierte Ruby-Methode, die die übergebenen Argumente ausgibt und diese Argumente dann zurückgibt, was sie für die Golf-Ausgabe nützlich macht. Wenn es ohne Argumente aufgerufen wird , gibt es nil zurück. Das Argument zugets
ist ein Begrenzer, so dass das Übergebenp
zu einem Null-Begrenzer führt, was bedeutet, dass es STDIN liest, bis es zu EOF gelangt. Der Heredoc-Ausdruck<<2
endet (und schließt nicht ein) mit der 2 am Ende der Datei.2
als Heredoc-Trennzeichen ist eine traditionelle Art der Verschleierung. Es kann fast jede Zeichenfolge sein.Haskell - 138
Keine wirklich gute Antwort, wollte aber dafür sorgen, dass beide Programme dieselbe Quelle verwenden. Durch Umbenennen der Datei könnten einige Zeichen gespart werden, aber dies wird keine gewinnbringende Lösung sein, daher denke ich, dass es sich nicht lohnt.
Kompilieren Sie diese Quelle als
A
undB
.Prüfung:
quelle
A
, und kopieren Sie dannA
aufB
?Node.js - 142 Zeichen
Skript
|
(auch als Skript A bekannt) - 80 ZeichenSkript
&
(auch als Skript B bezeichnet) - 62 ZeichenVerwendung
Beschreibung
Skript B liest den Inhalt von Skript A und wertet ihn aus, nachdem die Dateinamen und der
and
Operator zu einem ausgetauscht wurdenor
.Ich nannte die Dateien
&
und|
so kann ich eine einzige ersetzen in Script B. ausführenquelle
Python 3 - 102 Zeichen
Gibt 1 aus, wenn die Eingabe mit Programm 2 identisch ist, andernfalls nichts:
Gibt 1 aus, wenn die Eingabe nicht mit Programm 1 übereinstimmt, andernfalls nichts:
quelle
bash / grep - 59 Zeichen
51 Zeichen, wenn wir nur die tatsächliche Programmzeichenfolge zählen.
quelle
R (62 Zeichen)
produziert:
Meta-Kommentar: R-Messen sind auf Code-Golf relativ schlecht, da es keine Abkürzung zu
function
...quelle