python 에서의 monoid

limseok(34)
Published in
#python
Words
47
Reading
1 min
Listen
Play
9y

우선 monoid 의 수학적 정의를 살펴보자.
아래의 3가지를 모두 만족 한다면 '집합 S 를 항등원이 e 인 ⊗ 연산에 대해서 monoid' 라고 한다.

1.  S    a  b   a  b       S  .
2.  S    a  b, c   (a  b)  c = a  (b  c)  . ( )
3.  S    e    S    a  a  e = e  a = a  .

따라서 monoid 라면 대(big) operator 개념을 생각해볼 수 있다.

이걸 응용한 python 시퀀스에 대한 대(big) operator 구현이
map / filter / functools.reduce 등등이다.


my_sum = lambda S: functools.reduce(lambda x, y: x + y, S, 0)
my_product = lambda S: functools.reduce(lambda x, y: x * y, S, 1)
my_cat = lambda S: functools.reduce(lambda x, y: x + y, S, "")
python 에서의 monoid | Ecency