-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
32 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# 1장 | ||
|
||
## 함수형 프로그래밍은 무엇인가? | ||
|
||
1. 수학 함수를 사용하고 부수 효과를 피하는 것이 특징인 프로그래밍 패러다임 | ||
2. 부수 효과 없이 순수 함수만 사용하는 프로그래밍 스타일 | ||
|
||
⇒ 순수 함수는 인자에만 의존하고 부수 효과가 없는 함수 | ||
⇒ 수학의 함수도 그렇게 동작 ⇒ 수학 함수는 순수 함수 ⇒ 그럼 1, 2번은 같은 말 아닌가? | ||
|
||
|
||
## 실용적인 측면에서 함수형 프로그래밍 정의의 문제점 | ||
|
||
1. 부수효과는 필요함 | ||
⇒ 시스템을 만드는데 완전히 안쓰는건 어렵거나 불가능 함 | ||
2. 정의에는 순수 함수만 쓰라고 되어있지만 순수하지 않은 함수도 다룸 | ||
|
||
## 함수형 프로그래밍을 학문적 지식이 아닌 기술과 개념으로 보기 | ||
|
||
액션, 계산, 데이터로 구분하는 것은 함수형 프로그래밍의 기본 개념 | ||
|
||
액션은 실행 시점이나 횟수 또는 둘 다에 의존 | ||
|
||
⇒ 시간에 의존하기 때문에 사용하기 가장 어려움, 액션에서 시간에 의존하는 부분을 분리하면 좀 더 다루기 쉬워짐 | ||
|
||
계산은 입력값으로 출력값을 만듦 | ||
|
||
⇒ 시간에 의존적이지 않음. 다루기 쉬워서 가능한 코드를 계산으로 바꾸는게 좋음 | ||
|
||
데이터는 이벤트에 대해 기록한 사실 | ||
|
||
⇒ 정적, 저장 & 이해하기 쉬움 |