Edit: je reformule un peu la question. Apparemment, j'ai causé une certaine confusion parce que je ne savais pas que le terme destructeur est utilisé dans la POO pour quelque chose de tout à fait différent - c'est une fonction invoquée lorsqu'un objet est détruit. Dans la programmation fonctionnelle, nous (essayons) d'éviter l'état mutable, il n'y a donc pas d'équivalent. (J'ai ajouté la balise appropriée à la question.)
Au lieu de cela, j'ai vu que le champ d'enregistrement pour déballer une valeur (en particulier pour les types de données à valeur unique tels que newtype
s) est parfois appelé destructeur ou peut-être déconstructeur . Par exemple, ayons (dans Haskell):
newtype Wrap = Wrap { unwrap :: Int }
Voici Wrap
le constructeur et unwrap
c'est quoi?
Les questions sont:
- Comment appelons-nous
unwrap
en programmation fonctionnelle? Déconstructeur? Destructeur? Ou par un autre terme? - Et pour clarifier, cette / autre terminologie est-elle applicable à d'autres langages fonctionnels , ou est-elle utilisée uniquement dans le Haskell?
- Peut-être aussi, y a-t-il une terminologie pour cela en général, dans les langages non fonctionnels ?
J'ai vu les deux termes, par exemple:
... Le plus souvent, on fournit des constructeurs et des destructeurs intelligents pour faciliter leur travail avec eux. ...
sur le wiki Haskell , ou
... Le thème général ici est de fusionner les paires constructeur - déconstructeur comme ...
au wikibook de Haskell (ici, cela signifie probablement dans un sens un peu plus général), ou
newtype DList a = DL { unDL :: [a] -> [a] }
La fonction unDL est notre déconstructeur , qui supprime le constructeur DL. ...
dans The Real World Haskell .