Sunting: Saya sedikit mengulang pertanyaan itu. Rupanya saya menyebabkan beberapa kebingungan karena saya tidak menyadari bahwa istilah destructor digunakan dalam OOP untuk sesuatu yang sangat berbeda - itu adalah fungsi yang dipanggil ketika suatu objek sedang dihancurkan. Dalam pemrograman fungsional kita (mencoba) menghindari keadaan yang bisa berubah sehingga tidak ada yang setara dengannya. (Saya menambahkan tag yang tepat ke pertanyaan.)
Alih-alih, saya telah melihat bahwa bidang rekaman untuk membuka bungkus nilai (terutama untuk tipe data bernilai tunggal seperti newtype
s) kadang-kadang disebut destruktor atau mungkin dekonstruktor . Sebagai contoh, mari kita miliki (di Haskell):
newtype Wrap = Wrap { unwrap :: Int }
Ini Wrap
konstruktornya dan unwrap
apa?
Pertanyaannya adalah:
- Bagaimana kita memanggil
unwrap
pemrograman fungsional? Dekonstruktor? Destructor? Atau dengan istilah lain? - Dan untuk memperjelas, apakah ini / terminologi lain berlaku untuk bahasa fungsional lainnya , atau hanya digunakan di Haskell?
- Mungkin juga, adakah terminologi untuk ini secara umum, dalam bahasa yang tidak berfungsi ?
Saya telah melihat kedua istilah tersebut, misalnya:
... Paling sering, satu memasok konstruktor dan penghancur pintar untuk ini agar mudah bekerja dengan mereka. ...
di Haskell wiki , atau
... Tema umum di sini adalah memadukan konstruktor - pasangan dekonstruktor seperti ...
di Haskell wikibook (di sini mungkin maksudnya sedikit lebih umum), atau
newtype DList a = DL { unDL :: [a] -> [a] }
Fungsi unDL adalah dekonstruktor kami , yang menghapus konstruktor DL. ...
di Dunia Nyata Haskell .