Bayangkan ini, kita memiliki lingkungan dengan cakupan global yang hanya berisi satu objek, disebut codegolf
. Objek ini memiliki satu anak yang dipanggil stackexchange
, yang memiliki properti yang disebut com
.
Mengakses properti ini akan terlihat seperti codegolf.stackexchange.com
.
Tantangan
Input dari program / fungsi Anda akan berupa string yang mencoba mengakses properti pada lingkup global. Setiap kali properti ini ditemukan, Anda harus mencetak / mengembalikan nilai yang sebenarnya. Jika properti tidak ditemukan, nilai palsu akan dicetak / dikembalikan. Tangkapannya: ketika Anda mencoba mengakses properti pada objek yang tidak ada, program Anda harus melakukan kesalahan apa pun¹.
Untuk mempermudah, Anda dapat mengasumsikan bahwa input akan selalu ada [a-z.]
, tidak akan pernah kosong, tidak akan pernah berulang .
, dan tidak akan pernah memulai atau berakhir dengan a .
. Begitu codegolf.
juga input yang tidak valid.
Uji kasus
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
Ini adalah kode-golf , kode terpendek dalam byte yang menang
¹ jika (dan hanya jika) bahasa pilihan Anda tidak mendukung kesalahan sama sekali , Anda harus menampilkan sesuatu yang menjelaskan bahwa ini adalah kesalahan. Misalnya, jika Anda menggunakan 1 untuk truey dan 0 untuk falsy, Anda dapat menggunakan "e" untuk kesalahan. Konsisten dalam nilai pengembalian Anda dan jelaskan perilaku di pos Anda.
codegolf.com
kasus uji untuk mengesampingkan codegolf(.stackexchange)?(.com)?$
jenis cek
foo.stackexchange.com
foo
akan kembali undefined
, tetapi itu tidak akan menimbulkan kesalahan. foo.bar
akan melempar kesalahan karena foo
tidak didefinisikan.
codegolf.foo => 0
, Jadi foo => 0
.
foo => Error
akan lebih tepat.