Latar Belakang
Terinspirasi oleh Octave (dan, dengan ekstensi, MATL) interpretasi yang sangat nyaman dari matriks kebenaran / kepalsuan, Jelly mendapatkan atom Ȧ ( semua gaya oktaf ).
Ȧ mengambil array sebagai input dan mengembalikan 1 jika array tidak kosong dan tidak mengandung angka 0 (integer, float, atau complex) di mana saja dalam struktur pohon ; jika tidak, ia mengembalikan 0 .
Sebagai contoh, array [[]] adalah benar karena tidak kosong dan tidak mengandung nol, tetapi [[0]] salah karena berisi 0 pada level terdalam.
Tugas
Dalam bahasa pemrograman pilihan Anda, tulislah program lengkap atau fungsi yang menggunakan array bilangan bulat kosong yang mungkin bergerigi sebagai input dan cetak atau kembalikan nilai yang benar atau salah yang mengindikasikan apakah Ȧ akan mengembalikan 1 atau 0 , masing-masing.
Kiriman Anda harus mematuhi aturan berikut.
The truthy dan nilai-nilai falsy harus konsisten untuk semua masukan , yaitu, semua array yang ȧ mengembalikan 1 harus memetakan dengan nilai truthy yang sama, dan semua array yang ȧ mengembalikan 0 harus memetakan dengan nilai falsy yang sama.
Karena program lengkap hanya dapat mengambil representasi string dari array sebagai input, ini diizinkan. Namun, Anda harus menggunakan representasi bahasa Anda yang kanopi, seperti yang dikembalikan oleh
repr
atau serupa.Khususnya Anda tidak dapat mengasumsikan bahwa elemen pertama array akan didahului oleh spasi.
Jika (dan hanya jika) bahasa Anda tidak dapat mewakili array bergerigi secara asli, Anda dapat mengambil representasi string dari input, menggunakan sintaksis kanonik dari bahasa pemrograman yang sudah ada sebelumnya.
Jika bahasa Anda memiliki beberapa cara untuk mewakili array bergerigi (misalnya, daftar dan tupel), Anda hanya perlu mendukung salah satunya.
Jika bahasa Anda memiliki built-in yang merupakan pengajuan yang valid untuk tantangan ini, Anda tidak dapat menggunakannya dalam jawaban Anda . Semua bawaan lainnya diizinkan.
Anda disarankan untuk mengirim jawaban menggunakan manipulasi array dan string, meskipun yang satu jauh lebih pendek dari yang lain.
Semoga kode terpendek dalam byte menang!
Kasus uji kebenaran
[1]
[10]
[[]]
[[[[1]]]]
[[], [1], [1, 2]]
[[1], [1, [2]], [1, [2, [3]]]]
[[8], [8, [9]], [8, [9, [10]]]]
Kasus uji palsu
[]
[0]
[0, -1]
[-1, 0]
[[[[0]]]]
[[0], [1, 2], [3, 4, 5]]
[[8], [8, [9]], [8, [9, [1, 0]]]]
[-1, 0, 0, 0]
Object
... favorit saya adalah Haskell, di mana tidak. Atau di C, setidaknya tidak dengan cara yang memungkinkan Anda untuk mencampur array dan ints dengan aman. Kedua bahasa tersebut sangat mampu membuat array bergerigi, tetapi masih tidak dapat menggunakannya untuk masalah ini.