Existem muitas maneiras diferentes de expressar se algo é verdadeiro ou não! O objetivo desse desafio é produzir uma saída padronizada de truthyou falsypara vários valores de verdade e falsidade de entrada.
Para os propósitos deste desafio, as seguintes entradas são consideradas verdadeiras:
- Uma sequência que representa um número inteiro assinado com um valor diferente de zero (contém apenas os dígitos
[0-9], com um opcional-no início). Observe que a string-0nunca será fornecida como entrada. Um número inteiro diferente de zero nunca será precedido por a0(ou seja01, nunca será dado como entrada, da mesma forma-01nunca será obtido como entrada). - As cordas de maiúsculas e minúsculas equivalentes a um de
defined,found,nonnil,non-nil,on,success,t,true,y, eyes
Para os propósitos deste desafio, as seguintes entradas são consideradas falsas:
- A cadeia
0. Zeros repetidos (00,00...) nunca serão dados como entrada. - Uma string vazia
- As cordas de maiúsculas e minúsculas equivalentes a um de
f,failure,false,n,nan,nil,no,notfound,not-found,null,nullptr,off, eundefined
Entrada
A entrada é uma sequência que representa um valor de verdade / falsidade. A string pode vir de qualquer fonte desejada (stdio, parâmetro de função etc.). Não há espaços em branco à esquerda / à direita.
A entrada é garantida para corresponder a um dos valores permitidos de verdade / falsidade acima (ou seja, você não precisa fornecer nenhum tratamento de erros).
Resultado
Seu programa / função deve gerar um valor de verdade / falsidade que represente a "verdade" ou "falsidade" da entrada. Você só pode especificar exatamente 1 valor de verdade e 1 valor de falsidade para o qual sua saída deve converter a entrada (esses são seus valores de verdade / falsidade "padronizados"). A saída pode ser gravada em qualquer coletor desejado (stdio, valor de retorno, parâmetro de saída, etc.).
Especifique o valor truthye o falsyvalor que você escolheu na sua resposta.
Ex .: Se você escolher a sequência truecomo um valor de verdade, também não poderá ter o número inteiro 1para a verdade.
Casos de teste
Os casos de teste são formatados como a primeira linha é a entrada e a segunda linha é a saída.
-1
true
1
true
1234
true
-4321
true
defined
true
deFined
true
Found
true
nonnil
true
non-nil
true
ON
true
SuCCess
true
T
true
true
true
y
true
YeS
true
0
false
'' (empty string)
false
faLSE
false
f
false
Failure
false
n
false
NaN
false
nil
false
no
false
notfound
false
not-Found
false
NULL
false
nullptr
false
OFF
false
unDefined
false
Pontuação
Isso é código-golfe; o código mais curto em bytes vence. Aplicam-se brechas padrão. Você pode usar quaisquer embutidos desejados.
00verdade ou são entradas válidas? (Suponho que eles não são válidos, mas apenas verificando)
0?