Tantangan ini cukup sederhana. Sebagai masukan, Anda mengambil ekspresi reguler.
Kemudian, Anda menampilkan kebenaran / kesalahan apakah kode sumber Anda cocok dengan ekspresi reguler atau tidak. Sesederhana itu! Hanya dua hal lagi:
- Tidak ada quine builtin; Anda dapat, bagaimanapun, mengakses kode sumber kode dengan file IO, dll.
- Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
Contoh
Jika kode sumber Anda diucapkan, abc
input dari a\wc
akan mengembalikan true dan input dari a\dc
akan kembali salah.
code-golf
quine
regular-expression
Maltysen
sumber
sumber
\d
tidak spesial di BRE; itu cocok dengan karakterd
. 3. Memilih citarasa regex tertentu membatasi tantangan Anda pada bahasa yang mendukungnya, dan beberapa bahasa mendukung BRE. Apakah itu disengaja?Jawaban:
Z shell, 12 byte
Zsh conditional hanya mengerti kode keluar, dan skrip keluar dengan 0 atau 1 sesuai.
Selain itu, ini mencetak string yang tidak kosong (kode sumber) untuk pertandingan dan yang kosong untuk ketidakcocokan, yang bisa berupa nilai kebenaran / falsy dalam kombinasi dengan
test
/[
.Program membaca file sendiri, tetapi menurut komentar OP, ini diperbolehkan.
sumber
-v
. Atau ...JavaScript (ES6), 39
sumber
Python 3, 119 byte
Ini hanya terlihat lebih keren, IMO (dan tidak membaca file).
Python 3, 67 byte
Ditambahkan setelah membaca komentar ini .
sumber
int
lebih pendek daribool
.Julia,
6454 byteEkspresi reguler Julia menggunakan PCRE. Saat membaca kode sumber file adalah celah standar untuk quines, dalam hal ini telah diizinkan secara eksplisit. Mengambil input tanpa baris baru.
sumber
Japt, 22 byte
Kerangka quine standar dengan beberapa byte ditambahkan agar sesuai dengan tantangan ini. Truthy = match (es), falsy = null. Cobalah online!
sumber
Mathematica, 63 byte
Perhatikan ruang trailing. Menggunakan mekanisme quine Mma standar, dan menguji apakah cocok dengan regex.
sumber
Perl, 21 byte
17 byte plus 4 byte untuk
-pl0
. Jalankan seperti ini:File sumber harus berisi hanya kode di atas (no shebang, no trailing newline). Keluaran
1
jika regex cocok dan string kosong jika tidak (string kosong adalah falsey di Perl).Empat byte dapat disimpan jika input dijamin tidak berakhir pada baris baru:
Jalankan seperti ini:
say
membutuhkan Perl 5.10+ dan harus diaktifkan dengan-M5.010
. Menurut Meta , "itu-M5.010
jika diperlukan, gratis," memberikan skor 17 byte.Bagaimana itu bekerja
Ini adalah variasi sederhana pada quine "kecurangan" standar:
Ini membuka file dengan nama
$0
dan membaca isinya<0>
.$_=<0>=~$_
membaca satu baris dari file sumber, melakukan pencocokan regex terhadap konten$_
(yang dibaca oleh-p
flag), dan memberikan hasilnya kepada$_
.-p
mencetak$_
secara otomatis di akhir.sumber
Jolf,
1815 byteMendukung rasa JS dari RegEx, saya harap tidak apa-apa. Coba di sini! .
Berkomentar:
sumber
x.step
itu bukan suatu fungsi.math
.𝔼𝕊𝕄𝕚𝕟, 14 karakter / 26 byte (tidak kompetitif)
Try it here (Firefox only).
Menggunakan versi dengan perbaikan bug yang ditulis setelah tantangan.
Penjelasan
CATATAN: Salin blok BUKAN operator quine. Mereka dimaksudkan untuk menjadi alternatif yang lebih fleksibel untuk deklarasi variabel.
sumber
Ⅹ
ke 10.