Die Herausforderung
Sie erhalten eine Funktion, compile(s: String): Integer
die zurückgibt, 0
wenn s
sie kompiliert werden kann und alles andere als 0
wenn sie fehlschlägt (der resultierende Code ist nicht wichtig).
Die Sache ist, dass Sie nicht wissen, für welche Sprache die Funktion gemacht ist. Es liegt also an Ihnen, dies herauszufinden, indem Sie der Funktion kleine Codeausschnitte geben und beobachten, was sie zurückgibt. Das Gute daran ist, dass ein Team von Wissenschaftlern es vor Ihnen versucht und die Liste auf C, C ++, C #, Java und JavaScript eingegrenzt hat (dies sind die einzigen weit verbreiteten Sprachen mit einer ähnlichen Syntax, die ich mir vorstellen kann).
Regeln
- Es gelten die allgemeinen Code-Golf-Regeln.
- Es gibt kein striktes Ausgabeformat. Solange es lesbar und verständlich ist, ist es in Ordnung.
- Wenn Ihnen diese 5 Sprachen nicht ausreichen, können Sie Ihre eigenen Favoriten hinzufügen und Sie werden mit zusätzlichen Sternen (★) belohnt (die nichts bewirken).
Hinweis 1 : Der Compiler ist auf dem neuesten Stand der Sprache, für die er entwickelt wurde.
Hinweis 2 : Ich weiß, dass JavaScript nicht kompiliert wird , aber es durchläuft einen Analyseprozess. Wenn es sich um einen gültigen JavaScript-Code handelt, wird er übergeben
Antworten:
Gesamtlänge des Snippets 8; Testprogramm 83 (C)
Unterscheiden Sie JavaScript und C von C ++, Java und C #
Unterscheiden Sie JavaScript von C.
Unterscheiden Sie C ++ von C # und Java
Unterscheiden Sie C # und Java
C-Code zur Bestimmung der Sprache
Snippets getestet mit
C: gcc 4.7.2 mit -std = c99
C ++: g ++ 4.7.2 mit -std = c ++ 11
Java: javac 1.7.0_09
JavaScript: JavaScript-C 1.8.5
C #: Mono C # -Compiler Version 2.10.8.0
quelle
#define C(x)compile(#x)?
spart Platz und viele Zitate.C(#x)
wird nicht funktionieren.