Este desafío es bastante simple. Como entrada, tomas una expresión regular.
Luego, muestra una verdad / falsedad de si su código fuente coincide o no con la expresión regular. ¡Es así de simple! Solo dos cosas más:
- Sin quinas incorporadas; Sin embargo, puede acceder al código fuente del código por archivo IO, etc.
- Este es el código de golf , por lo que gana el código más corto en bytes .
Ejemplo
Si su código fuente fuera decir, abc
una entrada de a\wc
devolvería verdadero y una entrada de a\dc
devolvería falso.
code-golf
quine
regular-expression
Maltysen
fuente
fuente
\d
no es especial en BRE; que coincide con el carácterd
. 3. Elegir un sabor de expresión regular específico restringe su desafío a los idiomas que lo admiten, y pocos idiomas admiten BRE. ¿Es eso intencional?Respuestas:
Shell Z, 12 bytes
Los condicionales Zsh entienden solo los códigos de salida, y las secuencias de comandos salen con 0 o 1 en consecuencia.
Además, esto imprime una cadena no vacía (el código fuente) para una coincidencia y una vacía para una falta de coincidencia, que podría ser como valores verdadero / falso en combinación con
test
/[
.El programa lee su propio archivo, pero de acuerdo con este comentario del OP, esto está permitido.
fuente
-v
. O ...JavaScript (ES6), 39
fuente
Python 3, 119 bytes
Esto se ve mejor , IMO (y no lee el archivo).
Python 3, 67 bytes
Agregado después de leer este comentario .
fuente
int
es más corto quebool
.Julia,
6454 bytesLas expresiones regulares de Julia usan PCRE. Si bien leer el código fuente del archivo es una laguna estándar para quines, en este caso se ha permitido explícitamente. Toma datos sin nueva línea final.
fuente
Japt, 22 bytes
Marco estándar de quine con algunos bytes agregados para adaptarse a este desafío. Verdad = coincidencia (es), falso = nulo. Pruébalo en línea!
fuente
Mathematica, 63 bytes
Tenga en cuenta el espacio final. Utiliza el mecanismo estándar de Mma quine y prueba si coincide con la expresión regular.
fuente
Perl, 21 bytes
17 bytes más 4 bytes para
-pl0
. Corre así:El archivo fuente debe contener solo el código anterior (sin shebang, sin línea nueva). Emite
1
si la expresión regular coincide y la cadena vacía si no (la cadena vacía es falsey en Perl).Se pueden guardar cuatro bytes si se garantiza que la entrada no termine en una nueva línea:
Corre así:
say
requiere Perl 5.10+ y debe habilitarse con-M5.010
. Según Meta , "el-M5.010
, cuando es necesario, es gratis", dando una puntuación de 17 bytes.Cómo funciona
Esta es una variación simple del estándar "trampa" quine:
Esto abre el archivo nombrado
$0
y lee el contenido con<0>
.$_=<0>=~$_
lee una línea del archivo fuente, hace una coincidencia de expresiones regulares con los contenidos de$_
(que fueron leídos por el-p
indicador) y asigna el resultado a$_
.-p
imprime$_
automáticamente al final.fuente
Jolf,
1815 bytesAdmite el sabor JS de RegEx, espero que esté bien. Pruébalo aquí! .
Comentado:
fuente
x.step
no es una función.math
.𝔼𝕊𝕄𝕚𝕟, 14 caracteres / 26 bytes (no competitivo)
Try it here (Firefox only).
Usar una versión con corrección de errores escrita después del desafío.
Explicación
NOTA: Los bloques de copia NO son operadores de quine. Están destinados a ser alternativas más versátiles a las declaraciones variables.
fuente
Ⅹ
a 10.