Saya ingin contoh quine dalam kalkulus lambda murni . Saya cukup terkejut bahwa saya tidak dapat menemukannya dengan googling. Halaman quine mencantumkan quine untuk banyak bahasa "nyata", tetapi tidak untuk kalkulus lambda.
Tentu saja, ini berarti mendefinisikan apa yang saya maksudkan dengan quine dalam kalkulus lambda, yang saya lakukan di bawah ini. (Saya meminta sesuatu yang sangat spesifik.)
Di beberapa tempat, misalnya Larkin dan Stocks (2004), saya melihat yang berikut ini dikutip sebagai ekspresi "replikasi diri": . Ini berkurang pada dirinya sendiri setelah satu langkah pengurangan beta, memberikannya perasaan seperti quine. Namun, ini tidak seperti quine karena tidak berhenti: pengurangan beta lebih lanjut akan terus menghasilkan ekspresi yang sama, sehingga tidak akan pernah berkurang ke bentuk normal. Bagi saya quine adalah program yang mengakhiri dan mengeluarkan sendiri, jadi saya ingin ekspresi lambda dengan properti itu.
Tentu saja, setiap ekspresi yang tidak mengandung redex sudah dalam bentuk normal, dan karena itu akan berakhir dan dihasilkan sendiri. Tapi itu terlalu sepele. Jadi saya mengusulkan definisi berikut dengan harapan akan menerima solusi yang tidak sepele:
Definisi (tentatif): Sebuah quine dalam kalkulus lambda adalah ekspresi dari bentuk
Mengingat bahwa kalkulus lambda adalah setara dengan Turing seperti bahasa lain, sepertinya ini mungkin, tetapi kalkulus lambda saya berkarat, jadi saya tidak bisa memikirkan contohnya.
Referensi
James Larkin dan Phil Stocks. (2004) "Ekspresi mereplikasi diri dalam Kalkulus Lambda" Konferensi dalam Penelitian dan Praktek dalam Teknologi Informasi, 26 (1), 167-173. http://epublications.bond.edu.au/infotech_pubs/158