PiSigma: mengapa 'buka' mengikat variabel?

8

Saya mencoba memahami makalah ΠΣ: Jenis Ketergantungan tanpa Gula dengan menerapkan juru bahasa dan pemeriksa jenis bahasa. Dalam melakukannya, saya telah melihat bahwa unfold t as x -> usintaks untuk definisi rekursif (sintaks didefinisikan dalam Bagian 2.1) mengikat variabel, tetapi saya tidak melihat mengapa itu diperlukan. Tak satu pun dari contoh di koran yang benar-benar menggunakan pengikatan variabel - mereka semua menggunakan bentuk steno unfold t(makna unfold t as x -> x).

Saya tidak melihat bahwa jenis memeriksa aturan untuk itu (dari bagian 5) menggunakan variabel mengikat, tapi saya tidak mengerti implikasi dari ini. Sejauh yang saya tahu unfold t as x -> usama dengan let x = unfold t in u.

Bisakah seseorang memberikan contoh kapan pengikatan variabel bermanfaat atau perlu? Adakah istilah yang mengecek dengan bentuk panjang unfoldtetapi tidak dengan bentuk pendek dan let?

Steve Trout
sumber
Saya akan mengutip aturan pengecekan tipe, tetapi pengetahuan saya LaTeX terlalu terbatas. Akankah editor yang baik hati melakukannya untuk saya? Terima kasih!
Steve Trout

Jawaban:

1

Saya tidak berpikir ada alasan ajaib / perlu. IMO, ditulis seperti itu untuk membuatnya lebih jelas bahwa itu unfoldadalah aturan eliminasi analitik / pemeriksaan; sama seperti mengapa splitditulis dengan cara seperti itu daripada ditulis sebagai proyeksi pertama dan kedua, dan mengapa caseditulis seperti itu daripada ditulis seperti uneitherdi Haskell.

Kembali bit "analitik", perhatikan bagaimana aturan eliminasi lainnya sintetik / inferior (beta) atau dua arah (bang)

wren romano
sumber
Ah, saya melihat perbedaan di sana. Itu kemungkinan alasan mengapa !xtidak ditulis force x as y -> y. Apakah ada alasan yang lebih dalam atau tidak, jawaban ini memuaskan keingintahuan saya. Terima kasih!
Steve Trout