Property Based Testing(속성 기반 검사)이란 어떤 함수에 대한 테스트 코드를 작성할 때, 함수를 실행한 결과값을 기반으로 Assert를 하는 것이 아닌 그 함수가 가진 속성을 기반으로 Assert를 하는 테스팅 방식을 의미한다.예를 들어, List&l
깃헙 코드 바로가기하나의 모노이드는 다음과 같은 요소들로 구성된다.어떤 형식 AA 형식의 값 2개를 받아서 하나의 값을 산출하는 결합적 이항 연산 op.이 연산 op에 대한 한등원 zero.그리고 op는 아래와 같은 결합 법칙을 만족해야 한다.그리고 항등원 zero는
우리는 함수형 프로그래밍 패러다임을 지원하는 많은 언어에서 다양한 자료 구조에 대해 map 함수를 지원하는 것을 알고 있다. 이러한 이른바 "map 함수를 구현하는 자료 구조"를 일반화한 특질을 Fucntor라고 부른다.functor는 어떤 형식(type)에 대한 것이
Monad Functor가 map을 가지고 있는 자료 구조들을 일반화한 특질인 것 처럼, Monad는 unit과 flatMap을 가지고 있는 자료구조를 일반화한 특질이다. Monad 만들기 arrow의 kind를 이용해서 Functor를 만들었던 것처럼 monad
Monad를 구성하는 기본수단이 unit과 flatMap이었다면, Applicative는 unit과 map2를 기본수단으로 하는 특질이다.applicative 특질은 그 이름이 시사하는 것처럼 unit + map2 말고도 unit + apply 를 기본수단으로 가지도록