함수형 프로그래밍을 알기 전에..
명령형 프로그래밍
변수를 지정하고 다양한 for문, if문들을 써서 어떻게 구현해 낼까.. 라는 고민, 설계를 하는게 명령형 프로그래밍이다.
예)
var sum = 0
for num in 배열{
sum += num
}
person.name = "clamp"
함수형 프로그래밍
함수를 쓰는것. ==> 다양한 함수들이 구현되어있고 이 함수들을 어떻게 조합해서 구현해 낼까.. 라는 고민, 선언하는게 함수형 프로그래밍이다.
함수(map, filter, reduce)등 을 이용해서 사이드 이펙트가 없도록 선언형으로 프로그래밍 하는것이다.
예)
배열.map{ 클로저 }
.filter{ 클로저 }
.reduce{ 클로저 }
//함수를 이용해서 선언형으로 프로그래밍하는 것
*추가 자료
https://youtu.be/jVG5jvOzu9Y (함수형 프로그래밍이 뭔가요? - 얄팍한 코딩사전)
https://youtu.be/HZkqMiwT-5A (함수형 프로그래밍이 뭐하는 건가요? - 곰튀김 님)
https://youtu.be/cXi_CmZuBgg (Functional Reactive Programming 패러다임 - 곰튀김 님)