펑터(기능 프로그래밍)
Functor (functional programming)기능 프로그래밍에서 functor는 범주 이론의 정의에서 영감을 받은 디자인 패턴으로, 일반 유형의 구조를 변경하지 않고 내부에 기능을 적용할 수 있도록 한다.
이 아이디어는 유형 클래스를 사용하여 Haskell로 암호화된다.
계급 펑터 f 어디에 fmap :: (a -> b) -> f a -> f b
functor laws라고 불리는 조건들을 가지고,
fmap id = id fmap (g . h) = (fmap g) . (fmap h)
특성 펑터[F[_]] { 반항하다 지도를 그리다[A,B](a: F[A])(f: A => B): F[B] }
이것의 간단한 예는 옵션과 컬렉션 유형이다.펑커스는 아직 완료되지 않은 계산에 함수를 적용하기 위해 기능 효과를 모델링하는 데 매우 유용하다.
Functors는 Applicative, Monad, Comonad와 같이 더 복잡한 추상화의 기초를 형성한다.
C++에서 functor라는 이름은 이 정의 대신 함수 객체를 가리킨다.