"데이터를 만드는것"과 "데이터가 어떻게 행동하는지"를 구분하는 수학적 틀 Algebra"작은것들을 조합해서 큰 값을 만든다." 를 수학적으로 표현한다. 예를 들어 List[]1 : []2 : (1 : [])3 : ( 2 : (1 : []))계속 생성한다. 수학적으로는cons : A × List → Listnil : List 즉, 입력 -> 새로운 값 생성 이다. 예를 들면 1 2 -> (1, 2) , 1 2 -> 1+2 모두 Algebra다.Leaf 3 Leaf 5 -> Node(Leaf3, Leaf5) 와 같이 Tree도 Leaf, Node를 이용해 큰 구조를 만든다. CoalgebraCoalgebra는 방향이 반대다. s → observe → s' (다음 상태)즉, 데이터를 만드는 것이 아니라 ..