Neste desafio, você deve escrever um programa ou função, que aceita uma string como entrada e gera um dos dois valores possíveis. Vamos chamar um desses valores de verdade e um falso . Eles não precisam realmente ser truthy ou Falsas . Para que uma resposta seja válida, ela deve atender a quatro critérios adicionais
Quando você passa seu programa para ele, ele gera o valor verdadeiro .
Se você passar seu programa como entrada para qualquer resposta mais antiga, ele deve gerar a saída de verdade (do programa para o qual você está passando).
Se você passar uma resposta antiga para sua resposta como entrada, ela deve gerar a saída falsy (do seu programa).
Deve haver um número infinito de strings que avaliam a saída verdadeira em todas as respostas do desafio (incluindo sua nova resposta).
O que isso fará é criar lentamente uma cadeia de respostas, cada uma das quais pode determinar se outros programas na cadeia vêm antes ou depois dela.
O objetivo deste desafio é criar uma lista de restrições de origem que são aplicadas às respostas sucessivas, tornando cada uma mais desafiadora que a anterior.
Exemplo
Uma cadeia (escrita em Haskell) pode começar:
f _ = True
Como não existem programas mais antigos, os critérios não se aplicam a essa resposta, ela precisa apenas gerar um dos dois valores possíveis; nesse caso, sempre gera True
.
Depois disso, pode ser a resposta:
f x=or$zipWith(==)x$tail x
O que afirma que há um caractere duas vezes seguidas em algum lugar da string. A primeira resposta não possui essa propriedade, enquanto a segunda possui ( ==
). Portanto, esta é uma próxima resposta válida.
Regras especiais
Você pode usar qualquer idioma que desejar (que tenha uma implementação disponível gratuitamente) quantas vezes desejar.
Se você foi a última pessoa a responder, aguarde pelo menos 7 dias antes de postar uma nova resposta.
Seu programa pode não ler sua própria fonte.
Como a 4ª regra é extremamente difícil de verificar se há funções criptográficas envolvidas, essas funções não são permitidas.
Critério de pontuação
Cada vez que você adiciona uma resposta, obtém tantos pontos quanto o seu lugar na cadeia. Por exemplo, a 5ª resposta ganharia 5 pontos no escritor. O objetivo é conseguir o máximo de pontos possível. A última resposta marcará seu respondedor -∞ pontos. Provavelmente será mais divertido se você tentar maximizar sua própria pontuação em vez de "vencer" o desafio. Não aceitarei uma resposta.
Como isso é um encadeamento de respostas, convém classificar por