대수관계를 알면 좀 좋더라고 ㅇㅅㅇ


집합 S 와 연산자 * 가 있을 때

그니까 예를 들어

S = { 1, 2, 3... } (자연수)
* = +

이런식으로 있을 때

* 연산자를 S의 원소에 적용했을 때 결과가 S집합안에 있다면

마그마라고 불러



자연수 + 자연수는 무조건 자연수니까 마그마야 ㅇㅅㅇ

자연주 - 자연수는 음수, 즉 실수가 나올 수 있으니까 마그마가 아니야 ㅇㅅㅇ



마그마 중에서 항등원이 있고 결합법칙이 가능하면 모노이드라고 불러

(1 + 2) + 3 = 1 + (2 + 3) 이니까 결합법칙을 만족하고

1 + 0 = 0 + 1 = 1 이니까 항등원도 있지 ㅇㅅㅇ

<S, +> 는 모노이드야 ㅇㅅㅇ


카테고리는 함수 비슷한건데

함수의 집합도 있을 수 있겠지 ㅇㅅㅇ

카테고리도 모노이드가 될 수도 있어 ㅇㅅㅇ

그 중에 자기 함자 범주를 갖는 모노이드를 모나드라고 불러 ㅇㅅㅇ

자기 함자란 정의역과 공역이 같은 함수야 ㅇㅅㅇ


Option 이 모나드라면 이걸 만족하겠지 ㅇㅅㅇ

Option 에다가 map 을 하든 flatmap을 하든 filter 를 하든 나오는 값은 Option 이지

이게 자기 함자야 ㅇㅅㅇ