챕터 1 문제 : 함수형 사고란 무엇인가?

함수형 프로그래머가 소프트웨어 문제를 해결하기 위해 사용하는 기술과 생각

챕터 1 요점정리

  • 함수형 사고는 함수형 프로그래밍의 기술과 개념이다.
  • 액션은 시간에 의존하여 가장 어렵습니다. 시간에 의존하는 부분을 분리하면 더 다루기 쉽습니다.
  • 계산은 시간에 의존적이지 않습니다. 다루기 쉽기때문에 가능한 코드를 계산으로 바꾸는 것이 좋습니다.
  • 데이터는 정적이고 해석이 필요합니다. 데이터는 저장하거나 이해하기 쉽고 전송하기 편리합니다.

Q. 부수효과란? A. 함수가 리턴 값 이외에 하는 모든 일. ex) 같은 인자를 넣으면 항상 같은 결과를 돌려줌


Q. 순수 함수란? A. 인자에만 의존하고 부수 효과가 없는 함수 ex) 메일 보내기 전역 상태 수정하기


Q. 함수형 프로그래밍이란? A. 기존 정의 :

  1. 수학 함수를 사용하고 부수 효과를 피하는 것이 특징인 프로그래밍 패러다임
  2. 부수 효과 없이 순수 함수만 사용하는 프로그래밍 스타일

Q. 함수형 프로그래밍의 핵심 개념이란? (두 가지) A.

  1. 액션, 계산 데이터를 구분해서 생각
  2. 일급 추상

Q. 액션, 계산, 데이터의 특징은? A.

  • 액션: 실행 시점이나 횟수 또는 둘다에 의존.
  • 계산: 입력값을 계산해 출력하는 것. 같은 입력값을 넣으면 항상 같은 결과가 나옴.
  • 데이터: 이벤트에 대한 사실을 기록한 것 데이터가 가장 쓰기 좋다.

Q. 액션, 계산, 데이터를 구분하면 어떤 장점이 있나? A. 실행 시점이나 횟수에 의존하는 코드를 없애면 코드를 더 쉽게 이해할 수 있고 버그를 막을 수 있음 액션을 계산과 데이터로 바꿀 수록 분산 시스템에서 생기는 여러 문제 해결 가능 코드 전체에 영향을 주지 않도록 격리 시키면 됨. 코드의 많은 부분을 액션에서 계산으로 옮기면 액션도 다루기 쉬워짐


Q. 부를 때 조심해야하는 코드는(함수) A. 액션. 상단에 없으면 리턴 값이 달라질 수 있어서.