Ce défi est assez simple. En entrée, vous prenez une expression régulière.
Ensuite, vous affichez une vérité / falsey indiquant si votre code source correspond ou non à l'expression régulière. C'est si simple! Encore deux choses:
- Aucun quine builtins; vous pouvez cependant accéder au code source du code par fichier IO, etc.
- C'est du code-golf , donc le code le plus court en octets gagne!
Exemple
Si votre code source était dit, abc
une entrée de a\wc
retournerait vrai et une entrée de a\dc
retournerait faux.
code-golf
quine
regular-expression
Maltysen
la source
la source
\d
n'est pas spécial en BRE; il correspond au personnaged
. 3. Le choix d'une saveur regex spécifique limite votre défi aux langues qui la prennent en charge, et peu de langues prennent en charge BRE. Est-ce intentionnel?Réponses:
Coque Z, 12 octets
Les conditions Zsh ne comprennent que les codes de sortie et les scripts se terminent par 0 ou 1 en conséquence.
De plus, cela imprime une chaîne non vide (le code source) pour une correspondance et une chaîne vide pour une non-concordance, qui pourrait être des valeurs véridiques / fausses en combinaison avec
test
/[
.Le programme lit son propre fichier, mais selon ce commentaire de l'OP, cela est autorisé.
la source
-v
. Ou ...JavaScript (ES6), 39
la source
Python 3, 119 octets
Cela a l' air plus cool, IMO (et il ne lit pas le fichier).
Python 3, 67 octets
Ajouté après avoir lu ce commentaire .
la source
int
est plus court quebool
.Julia,
6454 octetsLes expressions régulières de Julia utilisent PCRE. Bien que la lecture du code source du fichier soit une faille standard pour les quines, dans ce cas, il a été explicitement autorisé. Prend des entrées sans retour à la ligne.
la source
Japt, 22 octets
Cadre de quine standard avec quelques octets ajoutés pour répondre à ce défi. Truthy = correspondance (s), falsy = null. Essayez-le en ligne!
la source
Mathematica, 63 octets
Notez l'espace de fin. Utilise le mécanisme de quine Mma standard et teste s'il correspond à l'expression régulière.
la source
Perl, 21 octets
17 octets plus 4 octets pour
-pl0
. Courez comme ceci:Le fichier source ne doit contenir que le code ci-dessus (pas de shebang, pas de retour à la ligne). Affiche
1
si l'expression régulière correspond et la chaîne vide si ce n'est pas le cas (la chaîne vide est falsey en Perl).Quatre octets peuvent être enregistrés si l'entrée est garantie de ne pas se terminer par une nouvelle ligne:
Courez comme ceci:
say
nécessite Perl 5.10+ et doit être activé avec-M5.010
. Selon Meta , "le-M5.010
, si nécessaire, est gratuit", ce qui donne un score de 17 octets.Comment ça fonctionne
Il s'agit d'une variante simple du quine standard de "triche":
Cela ouvre le fichier nommé
$0
et lit le contenu avec<0>
.$_=<0>=~$_
lit une ligne du fichier source, fait une correspondance regex avec le contenu de$_
(qui a été lu par l'-p
indicateur) et affecte le résultat à$_
.-p
s'imprime$_
automatiquement à la fin.la source
Jolf,
1815 octetsPrend en charge la saveur JS de RegEx, j'espère que ça va. Essayez-le ici! .
Commenté:
la source
x.step
n'est pas une fonction.math
.𝔼𝕊𝕄𝕚𝕟, 14 caractères / 26 octets (non concurrentiel)
Try it here (Firefox only).
Utiliser une version avec des corrections de bugs écrites après le challenge.
Explication
REMARQUE: les blocs de copie ne sont PAS des opérateurs de quine. Ils sont censés être des alternatives plus polyvalentes aux déclarations de variables.
la source
Ⅹ