Представьте себе, у нас есть среда с глобальной областью действия, содержащая только один названный объект codegolf
. У этого объекта есть единственный дочерний stackexchange
элемент с именем com
.
Доступ к этому свойству будет выглядеть следующим образом codegolf.stackexchange.com
.
Соревнование
Ввод вашей программы / функции будет строкой, пытающейся получить доступ к свойству в глобальной области видимости. Всякий раз, когда это свойство найдено, вы должны напечатать / вернуть истинное значение. Если свойство не найдено, ложное значение должно быть напечатано / возвращено. Подвох: когда вы пытаетесь получить доступ к свойству несуществующего объекта, ваша программа должна выдавать любую ошибку¹.
Чтобы упростить задачу, вы можете предположить, что входные данные всегда будут [a-z.]
, они никогда не будут пустыми, никогда не будут повторяться .
и никогда не будут начинаться или заканчиваться на .
. Так codegolf.
что неверный ввод.
Контрольные примеры
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
Это код-гольф , выигрывает самый короткий код в байтах
¹ если (и только если) ваш язык выбора не поддерживает ошибки на всех , вы должны вывести что - то , что делает его ясно , что это ошибка. Например, если вы используете 1 для истины и 0 для фальсификации, вы можете использовать «e» для ошибки. Будьте последовательны в ваших возвращаемых значениях и объясните поведение в своем посте.
codegolf.com
в тестовые codegolf(.stackexchange)?(.com)?$
foo.stackexchange.com
foo
вернется undefined
, но не выдаст ошибку. foo.bar
выдаст ошибку, потому что foo
не определено.
codegolf.foo => 0
так foo => 0
.
foo => Error
было бы более подходящим.