Order-derivable Semigroups

만약 주어진 numbertotal order (전순서 집합, 어떤 임의의 xy 를 선택해도, 다음 두 조건 중 하나가 참이다: x <= y 또는 y <= x) 라면 min 또는 max 연산을 활용해 또 다른 두 개의 Semigroup<number> 인스턴스를 얻을 수 있습니다.

import { Semigroup } from 'fp-ts/Semigroup'

const SemigroupMin: Semigroup<number> = {
  concat: (first, second) => Math.min(first, second)
}

const SemigroupMax: Semigroup<number> = {
  concat: (first, second) => Math.max(first, second)
}

문제. 왜 numbertotal order 이어야 할까요?

이러한 두 semigroup (SemigroupMinSemigroupMax) 을 number 외 다른 타입에 대해서 정의한다면 유용할 것입니다.

다른 타입에 대해서도 전순서 집합 이라는 개념을 적용할 수 있을까요?

순서 의 개념을 설명하기 앞서 동등 의 개념을 생각할 필요가 있습니다.