함수형 프로그래밍에서는 코드를 세 가지로 분류한다.
1. 액션
- 액션은 실행 시점이나 횟수 또는 둘 다에 의존한다.
sendEmail(to, from, subject, body)
→ 이메일을 보내는 코드
saveUserDB(user)
→ DB에 유저 정보를 저장하는 코드
getCurrentTime()
→ 부를 때 마다 다른 시간을 줌
2. 계산
- 같은 입력값을 가지고 계싼하면 항상 같은 결과값이 나온다.
- 언제, 어디서 계산해도 결과는 같고 외부에 영향을 주지 않습니다. 계산은 테스트하기 쉽고 언제든지 몇번을 불러도 안전하다.
sum(numbers)
→ 모든 숫자를 더하는 함수
string_length(str)
→ 같은 문자열을 넣으면 항상 같은 길이를 준다.
3. 데이터
- 알아보기 위한 속성으로 되어 있고 실행 하지 않아도 자체로 의미가 있습니다.
- 같은 데이터를 여러 형태로 해석 할 수 있다. (같은 영수증 데이터로 각자가 필요한 데이터를 추출해서 쓴다.)
const personName = {
firstName : 'Eric',
lastName : 'Normand'
}
함수형 프로그래머는 부를 때 조심해야 하는 코드를 구분한다.
- 액션은 부르는 시점과 횟수에 의존한다 → 호출할때 조심 해야한다.
- 계산은 호출 하는 시점이 중요하지 않는다. 언제 호출해도 항상 같은 값을 준다.
- 데이터와 계산은 부르는 시점이나 횟수가 중요하지 않다.