편집 : 나는 질문을 약간 표현하고 있습니다. 분명히 소멸 자라는 용어 가 OOP에서 매우 다른 무언가에 사용 된다는 것을 알지 못했기 때문에 혼란 이 생겼습니다. 개체가 파괴 될 때 호출되는 함수입니다. 함수형 프로그래밍에서 우리는 변경 가능한 상태를 피하려고 시도하므로 이에 상응하는 것은 없습니다. (질문에 적절한 태그를 추가했습니다.)
대신, (특히 같은 단일 값 데이터 유형에 대한 값을 풀기위한 레코드 필드 것을 본 적이 newtype
들)이라고도한다 소멸자 혹은 deconstructor . 예를 들어 (하스켈로) :
newtype Wrap = Wrap { unwrap :: Int }
여기 Wrap
생성자가 있고 unwrap
무엇입니까?
질문은 :
unwrap
함수형 프로그래밍에서 어떻게 호출 합니까? 해체 자? 파괴 장치? 아니면 다른 용어로?- 분명히 말하면, 이 / 다른 용어는 다른 기능 언어에 적용 가능 합니까, 아니면 Haskell에서만 사용됩니까?
- 아마도, 비 기능적 언어로 된 일반적인 용어가 있습니까?
예를 들어 두 용어를 모두 보았습니다.
... 대부분은 스마트 생성자와 소멸자 를 제공하여 작업을 용이하게합니다. ...
에서 하스켈 위키 , 또는
... 여기서 일반적인 주제는 생성자- 해체 쌍 을 융합하는 것입니다 ...
에 하스켈은 wikibook (여기가 아마 좀 더 일반적인 의미에서 의미하는 것), 또는
newtype DList a = DL { unDL :: [a] -> [a] }
unDL 함수는 deconstructor로 DL 생성자를 제거합니다. ...
에서 실제 세계 하스켈 .