Skip to content

[additional] Functor 의 제 1법칙만 성립해도 Functor 가 된다?! #18

@leejaeseung

Description

@leejaeseung

연관 챕터

#17

조사 내용

p.170 에 Functor 가 되기 위한 2 가지 조건이 나옵니다.

  1. 부수효과가 없어야 한다.
  2. 합성이 가능해야 한다.

이는 다른 책에서 아래와 같이 설명합니다.

  1. 부수효과가 없어야 한다.
    fmap(identity()) == identity() 즉, fmap 에 identity 를 적용한 것과 identity 가 같다.
  2. 합성이 가능해야 한다.
    fmap(f * g) == fmap(f) * fmap(g) 즉, 개별적으로 합성한 것과 합성 후 fmap 한게 동일하다.

여러 책들에서 위 두 가지 조건을 모두 만족하는 fmap 은 Functor 라고 정의할 수 있다고 합니다.
하지만 Functor 의 제 1 법칙을 만족한다면 제 2법칙은 항상 만족함을 증명한다는 글이 있어 정리해 봅니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    additional책에 나온 외에 추가적인 내용

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions