Combinators - 함수형 프로그래밍 패턴

Combinators

요약

TinyAPL 문서에서 소개하는 Combinator는 인자와 피연산자만 참조하고 수정하지 않는 함수 또는 연산자이다. Identity, Kestrel, Warbler, Cardinal 등 다양한 조합자가 조류 이름으로 명명되어 있으며 함수형 프로그래밍에서 핵심 패턴을 구성한다.

핵심 포인트

  • 조합자(Combinator)는 순수 함수 개념으로 부작용이 없으며 함수형 프로그래밍의 기본 블록
  • Raymond Smullyan의 'To Mock a Mockingbird'에서 영감을 받아 조류 이름으로 표기

왜 중요한가

함수형 프로그래밍에서 재사용 가능한 고차 함수 패턴을 이해하고 활용할 수 있다.

📄 전문 번역

컴비네이터(Combinator)

컴비네이터는 자신의 인자나 피연산자를 수정하지 않고 오직 그것들만을 참조하는 함수나 연산자입니다.

주요 컴비네이터 목록

기호APL 표현새 이름(Bird Name)TinyAPL
I\mathrm IIdentity⊣/⊢
K\mathrm KKestrel
κ\kappaKite
W\mathrm WWarbler
C\mathrm CCardinal
B\mathrm BBluebird∘/⍤/⍥
Q\mathrm QQueer
B₁{\mathrm B}_1Blackbird
Ψ\PsiPsi
S\mathrm SStarling⟜/⇽
Σ\SigmaViolet Starling⊸/⇾
D\mathrm DDove∘/⟜
Δ\DeltaZebra Dove⍛/⊸
Φ\PhiPhoenix«»
Φ₁\Phi_1Pheasant«»
D₂{\mathrm D}_2Dovekie⊸ + ⟜
P\mathrm PParrot
N\mathrm NEastern Nicator
ν\mathrm \nuWestern Nicator

컴비네이터 유사 동작

일부 다른 기본 연산자들도 컴비네이터와 유사한 행동을 보입니다.

APL 표현TinyAPL다이어그램
n⍨n⍨F y⁖x G y⁖

참고

몇몇 컴비네이터는 Raymond Smullyan의 저서 『To Mock a Mockingbird』에서 유래한 새의 이름을 갖고 있습니다. 일부 새 이름은 Uiua 컴비네이터 페이지에서 차용했습니다. 그 외의 일부는 직접 만들어낸 것입니다.