고차함수 2

고차함수, 내장 고차함수

고차 함수는 다른 함수를 전달인자로 받거나 함수 실행의 결과를 함수로 반환하는 함수 를 뜻한다. 스위프트의 함수(클로저)는 일급시민(일급객체)이기 때문에 함수의 전달인자로 전달할 수 있고 함수의 결과 값으로 반환할 수 있다. JS에서 제공하는 map, filter, reduce 고차 함수가 있고 컨테이너 타입(Array, Set, Dictionary 등) 에 구현되어 있다. map은 데이터를 변형하고자 할 때 사용합니다. 기존 데이터를 변형하여 새로운 컨테이너를 만드는데, 기존 데이터는 변형되지 않습니다. 코드의 간결성 재사용 용이 컴파일러 최적화 성능 좋음 모든 요소 각각에 동일한 함수(callback 함수)를 적용한 값들을 모아 새로운 배열을 반환한다. filter와 마찬가지로 기존 배열을 수정하지 ..

고차함수 2021.10.30

일급객체

자바스크립트에도 특별한 대우를 받는 일급 객체(first-class citizen)가 있습니다. 대표적인 일급 객체 중 하나가 함수입니다. (자바스크립트가 나온 시점을 고려했을 때,) 자바스크립트에서 함수는 아래와 같이 특별하게 취급됩니다. 1. 변수에 할당 가능 2. 다른 함수의 인자로 전달 가능 3. 다른 함수의 결과로서 리턴될 수 있다. 아래는 변수 square에 함수를 할당하는 함수 표현식입니다. 자바스크립트에서 함수는 일급 객체이기 때문에 변수에 저장할 수 있습니다. 함수 표현식은 할당 전에 사용할 수 없습니다. square(7); // --> ReferenceError: Can't find variable: square */ const square = function (num) { return..

고차함수 2021.10.30