Imagine isso, temos um ambiente com um escopo global contendo apenas um único objeto, chamado codegolf
. Este objeto tem um único filho chamado stackexchange
, que possui uma propriedade chamada com
.
Acessar esta propriedade seria semelhante codegolf.stackexchange.com
.
O desafio
A entrada do seu programa / função será uma string tentando acessar uma propriedade no escopo global. Sempre que essa propriedade for encontrada, você deverá imprimir / retornar um valor verdadeiro. Se a propriedade não for encontrada, um valor falso será impresso / retornado. O problema: quando você tenta acessar uma propriedade em um objeto inexistente, seu programa deve gerar qualquer tipo de erro¹.
Para facilitar um pouco as coisas, você pode assumir que a entrada sempre será [a-z.]
, nunca estará vazia, nunca terá repetições .
e nunca começará ou terminará com a .
. Assim codegolf.
é uma entrada inválida.
Casos de teste
codegolf.stackexchange.com => 1 // or any other truthy value
codegolf.stackexchange.net => 0 // or any other falsy value
codegolf.stackexchange => 1
codegolf.foo => 0
codegolf => 1
foo => 0
codegolf.com => 0
codegolf.constructor => 0
codegolf.foo.bar => Error (since foo is undefined)
codegolf.stackexchange.com.foo => Error (since com is a value, not an object)
codegolf.stackexchange.com.foo.bar => Error
foo.stackexchange.com => Error
foo.bar => Error
foo.bar.baz => Error
Este é o código-golfe , o código mais curto em bytes ganha
¹ se (e somente se) o seu idioma de escolha não suporta erros em tudo , você deve imprimir algo que deixa claro que este é um erro. Por exemplo, se você usar 1 para verdade e 0 para falsidade, poderá usar "e" para um erro. Seja consistente com seus valores de retorno e explique o comportamento em sua postagem.
codegolf.com
aos casos de teste para descartar codegolf(.stackexchange)?(.com)?$
verificações de tipo
foo.stackexchange.com
foo
retornaria undefined
, mas não causaria um erro. foo.bar
lançaria um erro porque foo
não está definido.
codegolf.foo => 0
então foo => 0
.
foo => Error
seria mais apropriado.