Imagínese esto, tenemos un entorno con un alcance global que contiene un solo objeto, llamado codegolf
. Este objeto tiene un solo hijo llamado stackexchange
, que tiene una propiedad llamada com
.
El acceso a esta propiedad se vería así codegolf.stackexchange.com
.
El reto
La entrada de su programa / función será una cadena que intenta acceder a una propiedad en el ámbito global. Siempre que se encuentre esta propiedad, deberá imprimir / devolver un valor verdadero. Si no se encuentra la propiedad, se imprimirá / devolverá un valor falso. El problema: cuando intentas acceder a una propiedad en un objeto no existente, tu programa debería arrojar cualquier tipo de error¹.
Para hacer las cosas un poco más fáciles, puede suponer que la entrada siempre será [a-z.]
, nunca estará vacía, nunca tendrá repeticiones .
y nunca comenzará o terminará con a .
. Entonces codegolf.
es una entrada inválida.
Casos de prueba
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 es el código de golf , el código más corto en bytes gana
¹ si (y sólo si) el idioma de su elección no admite errores en absoluto , debe algo de salida que deja claro que esto es un error. Por ejemplo, si usa 1 para verdadero y 0 para falso, puede usar "e" para un error. Sea consistente en sus valores de retorno y explique el comportamiento en su publicación.
codegolf.com
a los casos de prueba para descartar codegolf(.stackexchange)?(.com)?$
verificaciones de tipo
foo.stackexchange.com
foo
volvería undefined
, pero no arrojaría un error. foo.bar
arrojaría un error porque foo
no está definido.
codegolf.foo => 0
, De modo foo => 0
.
foo => Error
que sería más apropiado.