Modifica: sto riformulando un po 'la domanda. Apparentemente ho creato un po 'di confusione perché non mi rendevo conto che il termine distruttore è usato in OOP per qualcosa di completamente diverso: è una funzione invocata quando un oggetto viene distrutto. Nella programmazione funzionale (proviamo a) evitare lo stato mutabile, 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 distruttore o forse decostruttore . Ad esempio, abbiamo (in Haskell):
newtype Wrap = Wrap { unwrap :: Int }
Ecco Wrap
il costruttore ed 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 o è utilizzata solo in Haskell?
- Forse esiste anche una terminologia per questo in generale, in linguaggi non funzionali ?
Ho visto entrambi i termini, ad esempio:
... Molto spesso, uno fornisce costruttori e distruttori intelligenti per facilitare il lavoro con loro. ...
nella wiki di Haskell , o
... Il tema generale qui è quello di fondere il costruttore - coppie di decostruttori come ...
al wikibook di Haskell (qui probabilmente è inteso in senso un po 'più generale), oppure
newtype DList a = DL { unDL :: [a] -> [a] }
La funzione unDL è il nostro decostruttore , che rimuove il costruttore DL. ...
nel mondo reale Haskell .