- 객체지향: 움직이는 부분 캡슐화하여 코드 이해 돕고
- 함수: 움직이는 부분 최소화하여 코드 이해를 돕는다
함수형 프로그래밍에선 함수도 중요하기에 보통 값과 다르지 않기 때문에 인자로 넘기거나 리턴할 수 있는 일급 객체 취급
- 변수나상태를 바꾸거나 수정
- 화면이나 파일에 데이터를 쓰는 IO작업
- 다른 부수효과가 있는 함수나 상태 값에 의존
이는 기계와 저수준에 최적화된 명령형 방식이다
프로그램을 작게 쪼개기
하나의 메인 프로그램과 부 프로그램, 서브루틴 그리고 함수
따라서 함수형 프로그래밍에선 작은 함수를 합성하여 복잡한 프로그램을 만들어낸다.
function sum_1_to_100(){
let sum = 0;
for(let i = 1; i<=100; i++){
sum += i
}0
return sum
}
function sum_1_to_100(){
function go(sum, i){
if(i>100){
return sum
}
return go(sum +1, i+1)
}
return go(0,1)
}
console.log(sum_1_to_100())
반복가능한 자료구조를 추상화된 함수 활용하면 순수하고 선언적으로 합성 쉬워짐