Esse desafio é bem simples. Como entrada, você recebe uma expressão regular.
Em seguida, você gera uma verdade / falsa sobre se seu código-fonte corresponde ou não à expressão regular. É simples assim! Apenas mais duas coisas:
- Não há quine builtins; você pode, no entanto, acessar o código-fonte do código pelo arquivo IO etc.
- Isso é código-golfe , então o código mais curto em bytes vence!
Exemplo
Se seu código-fonte fosse,, abc
uma entrada de a\wc
retornaria true e uma entrada de a\dc
retornaria false.
code-golf
quine
regular-expression
Maltysen
fonte
fonte
\d
não é especial em BRE; combina com o personagemd
. 3. A escolha de um sabor de regex específico restringe seu desafio aos idiomas que o suportam, e poucos idiomas suportam BRE. Isso é intencional?Respostas:
Shell Z, 12 bytes
Os condicionais Zsh entendem apenas os códigos de saída e os scripts são encerrados com 0 ou 1 de acordo.
Além disso, isso imprime uma string não vazia (o código-fonte) para uma correspondência e uma vazia para uma incompatibilidade, que pode ser como valores de verdade / falsidade em combinação com
test
/[
.O programa lê seu próprio arquivo, mas de acordo com este comentário do OP, isso é permitido.
fonte
-v
. Ou ...JavaScript (ES6), 39
fonte
Python 3, 119 bytes
Isso parece mais legal, IMO (e não lê o arquivo).
Python 3, 67 bytes
Adicionado após a leitura deste comentário .
fonte
int
é mais curto quebool
.Julia,
6454 bytesAs expressões regulares de Julia usam PCRE. Enquanto a leitura do código fonte do arquivo é uma brecha padrão para quines, nesse caso, foi explicitamente permitido. Recebe entrada sem nova linha à direita.
fonte
Japonês, 22 bytes
Estrutura padrão de quine com alguns bytes adicionados para atender a esse desafio. Verdade = correspondência (s), falso = nulo. Experimente online!
fonte
Mathematica, 63 bytes
Observe o espaço à direita. Usa o mecanismo quine padrão do Mma e testa se ele corresponde ao regex.
fonte
Perl, 21 bytes
17 bytes mais 4 bytes para
-pl0
. Execute assim:O arquivo de origem deve conter apenas o código acima (sem shebang, sem nova linha à direita). Produz
1
se o regex corresponde e a sequência vazia, se não (a sequência vazia é falsey no Perl).Podem ser salvos quatro bytes se for garantido que a entrada não termina em uma nova linha:
Execute assim:
say
requer Perl 5.10+ e deve ser ativado com-M5.010
. De acordo com Meta , "o-M5.010
, quando necessário, é gratuito", dando uma pontuação de 17 bytes.Como funciona
Esta é uma variação simples do quine padrão de "trapaça":
Isso abre o arquivo nomeado
$0
e lê o conteúdo com<0>
.$_=<0>=~$_
lê uma linha do arquivo de origem, faz uma correspondência regular com o conteúdo de$_
(que foram lidos pelo-p
sinalizador) e atribui o resultado a$_
.-p
imprime$_
automaticamente no final.fonte
Jolf,
1815 bytesSuporta o sabor JS do RegEx, espero que esteja tudo bem. Experimente aqui! .
Comentado:
fonte
x.step
não é uma função.math
., 14 caracteres / 26 bytes (não competitivo)
Try it here (Firefox only).
Usando uma versão com correções de erros escritas após o desafio.
Explicação
NOTA: Os blocos de cópia NÃO são operadores de quine. Eles devem ser alternativas mais versáteis para declarações de variáveis.
fonte
Ⅹ
a 10.