Category 로 구현한 TypeScript
TypeScript 언어를 단순화한 TS 라고 불리는 category 를 정의해봅시다:
- object 는 TypeScript 의 타입입니다:
string
,number
,ReadonlyArray<string>
, 등... - morphism 은 TypeScript 함수입니다:
(a: A) => B
,(b: B) => C
, ... 여기서A
,B
,C
, ... 는 TypeScript 의 타입 - identity morphism 은 단일 다형 함수를 의미합니다
const identity = <A>(a: A): A => a
- morphism 의 합성 은 (결합법칙을 만족하는) 일반적인 함수의 합성입니다
TypeScript 모델 TS category 는 다소 제한적으로 보일 수 있습니다: 반목문도 없고, if
문도 없으며, 대부분 기능이 없습니다... 하지만 잘 정의된 합성의 개념을 활용하면 이 모델은 우리가 목표에 도달하는 데 도움이 될 만큼 충분히 풍부하다고 할 수 있습니다.
(원문) As a model of TypeScript, the TS category may seem a bit limited: no loops, no
if
s, there's almost nothing... that being said that simplified model is rich enough to help us reach our goal: to reason about a well-defined notion of composition.