-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[keyword] 1장 - 함수형 길들이기 #2
Comments
p.25
map, filter, reduce 등등 이미 함수적으로 검증된 로직들을 레고처럼 붙였다 뗐다 하며 코드를 작성하게 된다. 명령형 vs 선언형vs 를 붙여두고 항상 비교해서 반대의 개념같지만, 명령형 코드로 추상화를 시켜서 사용하는게 선언형 코드라고 보면 좋을 듯 하다. p.32
모든 코드를 순수함수로 짜는 건 불가능하다. (외부 인프라와의 연결은 부수효과를 어쩔 수 없이 일으키기 때문에) 참조 투명성 : 참조에 투명하다. 즉, 참조를 해 사용할 때 투명하게 함수 내부를 들여다본 것처럼 예측 가능하게 함수를 사용할 수 있다. 참조 투명성 + 불변성 : 함수형의 필수 조건이라고 할 수 있을듯? 함수의 인자로 넘긴 객체가 불변한 객체가 아니라면 그 함수를 참조 투명하다고 볼 수 있을까? p.40
고수준의 추상화 : 선언적 코드 call-by-name : 정말 순수한 함수형 프로그래밍에는 예외가 존재하지 않는다 : 예외조차 리턴 값으로 반환할 수 있다. 리액티브 프로그래밍이란? : 연속적인 데이터를 끊김없이 전파하여 사용자에게 즉각적인 리액션을 취할 수 있게 하는 프로그래밍 패러다임? |
p.26
p.27
해당 예제의 run 함수는 매개변수의 세 함수를 체인처럼 연결하여, 한 함수의 반환값이 다른 함수의 입력값으로 전달되게끔 한다. 위의 run 함수의 세 개의 매개변수는 단순 스칼라 값이 아니라, 각각 인자를 갖는 함수형 매개변수로, 작은 함수들을 재료로 새로운 함수를 만들어 내는 것 이라고 이해할 수 있다. 더 작은 조각들로 프로그램을 나누고, 전체적으로 헤아리기 쉬운 형태의 프로그램으로 재조합 하는 것, 모든 함수형 프로그램은 이 기본원리를 따라 작성된다. 이는 본연의 기능은 그대로 간직한 채 코드를 쉽게 변경하기 위해 코드 자체를 매개변수화 하는 것이다. 함수형 프로그래밍은 선언적 (p.28~30)
선언적 프로그래밍은 (명령형 프로그램과는 달리), 프로그램의
( + 람다 표현식은 함수의 인자로 전달 가능한 익명 함수를 대체할 수 있는 깔끔한 대체 수단이다) 왜 수동루프를 제거해야 하는가?
-> 여기서 언급된 루프의 순수함수와 부수효과 (p.30~35)
순수함수의 특성
-> 이 요건 위배 시 부수효과 발생 상황
-> 하지만 DB 등 필수적인 외부자원 접근을 제거하는 것은 불가능할 수 있다. 따라서 완벽한 불순한 로직 제거는 불가능할 수 있다. 참조투명성과 치환성, (p35 ~ 37)
또한, 100% 순수함수의 경우 프로그램의 함수를 복잡한 작업 분해 유도 (p.39 ~ 40)
( + 이에 대해 Jason과 의논해 본 결과, FP의 작업단위 함수 분리는 OOP의 단일책임 원칙과 비슷하다고 보았으며, 사실 OOP와 FP는 서로 배타적인 패러다임이 아니며 FP는 OOP를 어느정도는 품고 있다는 사실을 이해할 수 있었다. 다만, 함수형 프로그램은 더욱 프로그램적인 입장에서 고려하기 때문에, 순수 기능단위로 작업을 분리한다는 것이 조금 다를 수 있다는 것을 인지했다.) 단순 함수를 엮어 붙이기 위해(
데이터를 매끄럽게 체이닝 처리, ( p41 ~ 42)
로대시JS, 람다JS등 함수형JS도구에는 이를 위한 고계함수가 구현되어 있으며, 리액티브JS에서도 활발히 사용된다.
(+ 복잡한 비동기 앱에서도 신속하게 반응, ( p43 ~ 45 )
|
주제
'1장 - 함수형 길들이기'을 읽고 내용을 요약하거나,
중요✨ 하다고 생각하는 키워드 및 관련 설명을 코멘트로 달아주세요
연관 챕터
#1
The text was updated successfully, but these errors were encountered: