Sebagian besar sintaksis Haskell memiliki keindahan kemurnian. Tapi sintaksisnya terlihat jelek. Itu tidak nyaman. Rasanya semacam campuran dengan C. Itu membutuhkan koma dan kawat gigi. Haskell memiliki tab, pemisahan berdasarkan garis. Jadi itu terlihat terlalu bertele-tele daripada yang dibutuhkannya. Mengapa ini dirancang sedemikian rupa?
9
Jawaban:
Sementara saya tidak berada di komite desain, saya rasa bahwa sintaks record dibentuk agar konsisten dengan sintaksis daftar. Sintaks ekspor modul menggunakan koma juga, satu-satunya tempat nyata di mana tata letak digunakan adalah deklarasi tingkat atas, tempat klausa dan notasi.
Selain itu, diberikan
penulisan
tanpa kawat gigi akan berbenturan dengan sisa sintaks, dan menggunakan tata letak, seperti
akan membuat sintaks cukup rapuh. Tambahkan "di mana" di tempat yang salah dan kode Anda berarti sesuatu yang sama sekali berbeda.
Jika Anda tidak puas dengan status catatan di Haskell (dan Anda tidak akan sendirian dengan itu), saya sarankan Anda melihat fclabels atau bahkan peretasan typeclass yang rumit seperti HList atau catatan grapefruit (dua yang terakhir tidak menjadi untuk yang lemah hati, tetapi juga sangat kuat)
fclabels akan memungkinkan Anda untuk menulis (yay pointfree)
sebaik
di atas itu sebenarnya raison d'etre, yang menyusun label:
sumber
setL
bisa berubah? Tanpa IO? Sulit dimengerti ...