3주차 CS06 학습 내용 정리

cherrylime69·2022년 1월 23일
0

코드스쿼드

목록 보기
3/4

🙋‍♂️ 학습

📚 함수형 프로그래밍이란?

  • 수학적인 함수로 표현 가능한 프로그래밍
  • 순수 함수를 사용 (동일한 매개변수를 넣으면 동일한 리턴값을 반환)
  • 람다식, 고차 함수를 사용해 구성
  • 코드가 간략해지고 테스트나 재사용성이 용이

📚 순수 함수

  • side-effect 가 없는 함수
    • 동일한 입력 인자에 대해서는 동일한 반환값을 가진다.
    • 따라서, 변경 불가한 데이터를 활용
    • 함수 외부의 어떤 상태도 바뀌지 않는다
    • 다른 값에 영향을 주지 않고 순수하게, 투명하게 입력받은 인자만 다루고 동일한 반환값을 보장 (참조 투명성)
  • 순수 함수를 사용하는 이유
    • 입력과 내용을 분리하고 모듈화 하므로 재사용성이 높아진다.
    • 여러가지 함수들과 조합해도 부작용이 없다.
    • 특정 상태에 영향을 주지 않으므로 병행 작업 시 안전하다.
    • 함수의 값을 추적하고 예측 할 수 있기때문에 테스트, 디버깅 등이 유리하다

📚 람다식

  • 람다식은 람다 대수(Lambda calculus)에서 유래한 것으로 다음과 같은 형태의 함수를 람다식이라고 함
    { x, y -> x + y } // 람다식의 예 (이름이 없는 함수 형태)
  • 람다식은 고차 함수에서 인자로 넘기거나 결과값으로 반환 등을 할 수 있다.

📚 일급 객체

  • 함수형 프로그래밍에서는 함수를 일급 객체로 간주함.
  • 특징
    • 일급 객체는 함수의 인자로 전달할 수 있다.
      일급 객체는 함수의 반환값에 사용할 수 있다.
      일급 객체는 변수에 담을 수 있다.

📚 고차 함수

  • 고차 함수(high-order function)란 다른 함수를 인자로 사용하거나 함수를 결과값으로 반환하는 함수.
  • 두 특징을 모두 가지고 있어도 고차 함수다.
  • 즉, 일급 객체 혹은 일급 함수를 서로 주고받을 수 있는 함수가 고차 함수가 되는 것

참고

네이버 부스트코스

profile
개발자 일기

0개의 댓글