📌 함수형 프로그래밍에 대해서 설명해주세요
- 함수형 프로그래밍의 몇 가지 원칙
- 입출력이 순수해야합니다. (순수함수)
- 부작용(부산물)이 없어야합니다.
- 함수와 데이터를 중점으로 생각합니다.
입출력이 순수하다는 것은 반드시 하나 이상의 인자를 받고, 받은 인자를 처리하여 반드시 결과물을 돌려주어야한다는 겁니다. 인자를 제외한 다른 변수는 사용하면 안 됩니다. 받은 인자만으로 결과물을 내어야 하죠. 이러한 함수를 순수함수라고 부릅니다.
함수형 프로그래밍에서는 프로그래머가 모든 것을 예측하고 통제할 수 있어야합니다.
📌 함수는 어떤 조건을 만족하기 때문에 일급객체인가요?
- 함수를 변수나 데이타에 할당 할 수 있다.
- 함수를 인자로 전달 할 수 있다.
- 함수를 리턴 할수 있다.
📌 일급 객체, 일급 함수와 고차 함수에 대해 설명해주세요.
-
일급 객체(First-Class Object)
- 프로그래밍 언어에서 값으로 다룰 수 있는 객체를 의미합니다.
- 함수를 변수에 할당하거나 함수의 인자로 전달하고, 함수를 반환하는 등의 작업을 할 수 있어야 합니다.
-
일급 함수(First-Class Function)
- 함수를 일급 객체처럼 다룰 수 있는 성질을 가진 함수를 의미합니다.
- 함수를 변수에 저장하거나 함수를 인자로 전달하고, 함수를 반환하는 것이 가능해야 합니다.
-
고차 함수(Higher-Order Function)
- 다른 함수를 인자로 받거나 함수를 반환하는 함수를 가리킵니다.
- 고차 함수를 사용하면 함수 조합과 추상화를 쉽게 구현할 수 있으며, 함수형 프로그래밍에서 중요한 개념 중 하나입니다.
📌 일급 객체란 무엇인가요?
- 변수나 데이터 구조에 할당 가능.
- 함수의 인자로 전달 가능.
- 함수의 반환값으로 사용 가능.
- 동적으로 프로퍼티 할당 가능.
- 자바스크립트는 함수가 일급 객체로 취급되며, 이로 인해 함수를 변수에 할당하고, 함수를 다른 함수에 전달하며, 함수를 반환값으로 사용할 수 있어 함수형 프로그래밍과 코드 모듈화에 유용합니다.
📌 함수의 arguments 프로퍼티를 배열로 변환할 수 있는 방법에 대해 설명해 주세요.
- 간접호출 활용 (call 등)
- Rest파라미터 활용
- Array.from 메서드 활용