Modifica: sto riformulando la domanda un po '. Apparentemente ho causato un po 'di confusione perché non mi ero reso conto che il termine distruttore è usato in OOP per qualcosa di abbastanza diverso - è una funzione invocata quando un oggetto viene distrutto. Nella programmazione funzionale noi (proviamo a) evitiamo lo stato mutevole, quindi non esiste un simile equivalente. (Ho aggiunto il tag corretto alla domanda.)
Invece, ho visto che il campo record per scartare un valore (specialmente per tipi di dati a valore singolo come newtype
s) è talvolta chiamato destructor o forse deconstructor . Ad esempio, abbiamo (in Haskell):
newtype Wrap = Wrap { unwrap :: Int }
Qui Wrap
è il costruttore e unwrap
è cosa?
Le domande sono:
-
Come chiamiamo
unwrap
nella programmazione funzionale? Deconstructor? Distruttore? O con qualche altro termine? - E per chiarire, è questa / altra terminologia applicabile ad altri linguaggi funzionali , oppure è usata solo nell'Haskell?
- Forse anche, esiste una terminologia per questo in generale, nelle lingue non funzionali ?
Ho visto entrambi i termini, ad esempio:
... Most often, one supplies smart constructors and destructors for these to ease working with them. ...
Haskell wiki , o
... The general theme here is to fuse constructor - deconstructor pairs like ...
a Haskell wikibook (qui probabilmente è inteso in un senso un po 'più generale), o
newtype DList a = DL { unDL :: [a] -> [a] }
The unDL function is our deconstructor, which removes the DL constructor. ...