Уявіть собі, у нас є середовище з глобальним розмахом, що містить лише один об'єкт, зване codegolf. Цей об’єкт має єдину дитину stackexchange, яка називається , яка має властивість називатися com.
Доступ до цього ресурсу виглядав би так codegolf.stackexchange.com.
Змагання
Вхід вашої програми / функції буде рядком, який намагається отримати доступ до властивості в глобальному масштабі. Щоразу, коли ця властивість буде знайдена, ви повинні надрукувати / повернути триєдине значення. Якщо властивість не знайдено, фальшиве значення надрукується / повернеться. Улов: коли ви намагаєтеся отримати доступ до властивості на неіснуючому об'єкті, ваша програма повинна видавати будь-які помилки¹.
Щоб зробити щось простіше, ви можете припустити, що введення завжди буде [a-z.], воно ніколи не буде порожнім, у нього ніколи не буде повторення ., і він ніколи не починається і не закінчується символом a .. Так 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було б доречніше.