함수형프로그래밍(2)
-
[함수형 프로그래밍] Functor와 Monad
Functor map 함수를 지원하는 컨테이너 타입(map을 구현하는 타입) Context + value + map transform = Functor Context → 어떤 value 가 처해 있는 상태 Collection, Optional 등의 값을 가지는 container 포함하는 value가 generic으로 표현 되어야 함 Value → Context에 넣어지는 실제 내용 Context가 generic으로 표현되기 때문에 어떤 타입의 value라도 사용 가능 Transform → 어떤 값 T를 U로 변환해 주는 function T와 U는 같은 타입이여도 상관 없음 컨테이너에서 값을 뺀 후, 값에 특정 함수를 적용해 타입과 값을 변경하고, 다시 값을 컨테이너에 넣는 것 Array 타입은 map 함..
2020.04.09 -
[함수형 프로그래밍] 일급 함수
* 이 글은 함수형 프로그래밍 스터디를 하면서 적었던 글로써 사실과 다를 수도 있음.. 일급 함수? 함수 자체를 값으로써 다룰 수 있다. 변수에 할당할 수 있어야 한다. 인자로 전달할 수 있어야 한다. 반환 값으로 전달할 수 있다. Function composition (함수의 합성) 함수의 반환값이 다른 함수의 입력값으로 사용되는 것 함수가 합성되기 위해서는 함수의 반환값과 반환값을 받아들이는 값은 타입이 서로 같아야함 순수 함수를 만들어두고 그것을 조합 및 재활용 함수 단위의 재활용성이 높아진다 코드를 읽기 쉬워진다. ← 이건 아직 잘 모르겠다 함수 단위의 테스트가 쉬워진다 버그의 감소 ← 일단 써봐야 알겠다. func increment(_ value: Int) -> Int { return value..
2020.04.04