선언형과 함수형 프로그래밍

Gwonyeong·2023년 3월 27일
0

cs-note

목록 보기
8/8
💡 선언형 프로그래밍 ’무엇을’ 풀어내는가에 집중하는 패러다임이며 프로그램은 함수로 이루어진 것이다. 라는 명제가 담겨있는 패러다임.
  • 함수형 프로그래밍은 선언형 패러다임의 일종

자연수로 이루어진 배열에서 최댓값을 찾으라고 한다면?

const ret = [1, 2, 3, 4, 10, 11].reduce(
  (max, num) => (num > max ? num : max),
  0
);
console.log(ret); // 11

여기서 reduce()는 배열만 받아서 누적한 결괏값을 반환하는 순수 함수!

  • 함수형 프로그래밍은 위와 같이 순수 함수들을 블록처럼 쌓아 로직을 구현하고 ‘고차함수’를 통해 재사용성을 높인 프로그래밍 패러다임
  • 자바스크립트는 함수가 일급 객체이기 때문에 사실 객체지향보다는 함수형 프로그래밍 방식이 선호됨.

순수 함수

출력이 입력에만 의존하는 것.

const func = (a, b) => {
  return a + b;
};

입력으로 받는 a, b에만 영향을 받음.
만약 다른 전역변수가 이 출력에 영향을 주면 순수함수가 아님.

고차 함수

  • 함수가 함수를 값처럼 매개변수로 받아 로직을 생성하는 것.
  • 일급 객체?
    • 변수나 메서드에 함수를 할당할 수 있음.
    • 함수 안에 함수를 매개변수로 담을 수 있음.
    • 함수가 함수를 반환할 수 있음.
      • 콜백함수나 프로미스를 생각할 수 있을 것 같음.
profile
부동의 첫사랑

0개의 댓글