Titre volé inspiré par la réponse de Greg Hewgill à Quelle est la différence entre JavaScript et Java?
introduction
Java et JavaScript sont des langages couramment utilisés par les programmeurs et sont actuellement les balises les plus populaires sur Stack Overflow. Cependant, comme nous le savons tous, mis à part des noms similaires, les deux n’ont presque rien en commun.
En l'honneur de l'un des débats les plus célèbres de la programmation et inspiré par mes récentes frustrations en matière de recherche de balises , je propose ce qui suit:
Défi
Ecrivez un programme qui prend une chaîne en entrée. Retourne car
si la chaîne commence par "Java" et n'inclut pas "JavaScript". Sinon, revenez carpet
.
Exemple d'entrée et de sortie
voiture:
java
javafx
javabeans
java-stream
java-script
java-8
java.util.scanner
java-avascript
JAVA-SCRIPTING
javacarpet
tapis:
javascript
javascript-events
facebook-javascript-sdk
javajavascript
jquery
python
rx-java
java-api-for-javascript
not-java
JAVASCRIPTING
Remarques
- La correspondance des entrées doit être sensible à la casse
- Seules les possibilités de sortie doivent être
car
oucarpet
- Points bonus imaginaires si votre réponse utilise Java, JavaScript ou Regex
- Titre alternatif: Java est à JavaScript comme jambon est à hamster
code-golf
string
decision-problem
pattern-matching
Stevoisiak
la source
la source
javacarpet
lequel les tâches sont effectuées, des bogues pourraient être détectés, contrairement aux cas de test existants.imaginary bonus points if your answer uses Java, Javascript, or Regex
, est-ce que cela rend complexe le décompte de telles solutions? ;)Alternate Title: Java is to JavaScript as ham is to hamster
En fait, le "jambon" dans "hamster" est apparenté à la nourriture "jambon". L'aliment "jambon" est de la viande de porc et le terme "hamster" est dérivé de l'animal apparenté, le cochon d'Inde, dont la viande a remplacé la viande de porc lors de longs voyages en mer, les animaux étant plus faciles à élever sur un navire.Réponses:
Polyglotte Java / JavaScript,
108107106 octetsExécuter en Java
Essayez-le en ligne!
Remarque: ne faites pas confiance à la surbrillance car elle est incorrecte. Le vrai Java, correctement interprété, ressemble à ce qui suit, car il
\u000A
est interprété dès la première étape de la compilation comme se\n
terminant de facto par le commentaire qui a commencé par la ligne comment (//
).Exécuter en JavaScript
Crédits à @CowsQuak pour la version JS.
Combien de points bonus imaginaires pour cette réponse?
-1 octet grâce à @ Nevay dans la réponse Java.
la source
a
et=>
. J'ai essayé de rester dans l'esprit du golf. Si je fais quelque chose de mal, s'il vous plaît dites-moi?JavaScript,
5049 octetsEnregistré 1 octet grâce à @ValueInk en réorganisant les expressions rationnelles
Extrait de test
la source
/^java(?!script)/i
Java (OpenJDK 8) ,
9282725857 octetsEssayez-le en ligne!
1 octet enregistré grâce à @Nevay !
la source
C (seulement appelant put), 131 octets
Il a ses problèmes, mais il passe tous les tests fournis :)
bien ... non merci
la source
05AB1E , 21 octets
Essayez-le en ligne!
la source
lD“¦‚“åi“¾„“ë“îá“åi…carë
3 octets de plus et 1 heure de retard :(. Beau travail.Python 2 , 68 octets
Essayez-le en ligne!
-11 octets grâce à notjagan
-2 octets grâce à Dennis
la source
;
était requis, donc comme je dois l'utiliser de toute façon, la nouvelle ligne n'est pas nécessaire: P C'est pourquoi je l'ai utilisée.C #,
8078 octetsla source
ExcelGoogle Feuilles,8986 octets3 octets sauvés grâce à Taylor Scott
Prend une entrée sur A1
Explication
la source
Search
es parFind
s pour -2 octets et que cela pourrait être converti davantage en une formule de feuille Google pour -3 octets en ne fermant pas les trois derniers parentvim, 58 octets
Essayez-le en ligne!
la source
g
commande pourrait être un peu plus courte, quelque chose comme:g/\cjavascript/d
:g!/^\cjava/d
icarpet␛:s/pet..*
.Gelée , 27 octets
Essayez-le en ligne!
la source
Rubis , 42 + 1 = 43 octets
Utilise le
-p
drapeau.Essayez-le en ligne!
la source
Retina ,
4437 octetsMerci à @MartinEnder d'avoir joué 7 octets au golf!
Essayez-le en ligne!
la source
Common Lisp,
131 à125 octetsEssayez-le en ligne!
Taille réduite grâce au # n = «tour» de Common Lisp.
Explication
la source
C (tcc),
144136 octetsEssayez-le en ligne!
Déroulé:
la source
Excel, 84 octets
la source
Excel VBA, 76 octets
La fonction de fenêtre immédiate VBE anonyme qui prend l’entrée de la plage
[A1]
et des sorties estcar
/carpet
status dans la fenêtre immédiate VBEN'utilise pas RegExp
la source
Python 3 , 95 octets
Essayez-le en ligne!
Ouais, ça pourrait être plus court mais je voulais essayer d'utiliser un lambda imbriqué!
la source
and
,or
,if
,else
Perl , 42 octets
Je crois que la réponse de stevieb a un résultat incorrect (essayé moi-même - il retourne car pour "javajavascript"). Cela devrait fonctionner:
la source
Mathematica, 82 octets
regex
la source
JAISBaL , 36 octets
Verbose / explication:
JAISBaL était ma première tentative de conception d’une langue de golf, c’est donc assez bizarre ... il n’ya pas de correspondances ou ne contient pas, regex ou autre, nous devons donc scinder et vérifier la longueur du tableau résultant ... JAISBaL a une division par -regex ... mais pas d'autre support regex .... pour des raisons.
Regex
voléemprunté à la réponse de @Cows Quack .la source
Python 2 , 69 octets
Actuellement, 1 octet de plus que la solution Python 2 la plus courte.
Essayez-le en ligne!
la source
Perl , 36 octets
Exécutez-le comme tel:
la source
Lot, 91 octets
Prend une entrée sur STDIN. Batch n'a pas d'opérateur de comparaison insensible à la casse, mais son remplacement de chaîne est insensible à la casse. Par conséquent, je peux affecter temporairement les quatre premiers caractères à un remplacement temporaire, puis remplacer java, ce qui devrait alors donner la chaîne vide. En attendant, je remplace javascript de manière insensible à la casse dans la chaîne d'origine, ce qui devrait le laisser inchangé.
la source
Lua, 96 octets
la source
Perl,
988462 octetsEssayez-le en ligne!
Merci à bytepusher
la source
return $b;
avec juste$b;
. Perl retourne toujours la dernière instruction évaluée. Puisque nous ne nous soucions pas des avertissements, vous pouvez même laisser tomber le ';' à$b}
. Vous n'avez pas besoin de crochets autour du if. Si vous utilisez||
au lieu deor
, vous pouvez enregistrer un espace après la regex.!~
au lieu de! =~
la deuxième condition peut êtrelc$_[0]!~
. `->sub a{$b="car";$b.="pet"if lc$_[0]=~/javascript/||lc$_[0]!~/^java/;$b}
. Utiliser les ops ternaires le réduit encoresub a{$b="car";$b.="pet"if lc$_[0]=~/javascript/||lc$_[0]!~/^java/;$b}
$_[0] =~//i||$_[0]!~//i
. Et enfin, pourquoi une variable?sub a{"car".($_[0]=~/javascript/i||$_[0]!~/^java/i?'pet':'');}
devrait bien faire :). Et maintenant: perl sera sympa et vous permettra d'utiliser $ _ [0] sans préciser (mais pas avec!~
):sub a{"car".(/javascript/i||!/^java/i?'pet':'')}
-> 48 :)Dart VM,
104 octets102 octetsExplication :
Degolfed:
Nous avons notre fonction principale habituelle
Nous remplaçons
p
parp[0].toLowerCase();
pour que nous n'ayons pas à déclarer une nouvelle variable (var
plus un espace serait 4 octets supplémentaires)Nous procédons ensuite à l'impression réelle
Nous imprimons de manière
car
inconditionnelle et nous utilisons des instructions en ligne pour vérifier s'il faut imprimerpet
après. S'il contient la chaîne "java" à l'index 0 et qu'il ne contient pas "javascript", nous ne faisons rien (nous ajoutons en fait une chaîne vide mais elle n'a aucun effet), sinon nous ajoutonspet
.la source
Rouille, 97 octets
Je suis à peu près sûr qu'il existe une solution plus courte mais c'est mon premier essai :)
la source
Bracmat , 66 octets
Essayez-le en ligne!
la source