평가
ES6에서 달라진 리스트 순회!! (이터러블, 이터레이터 프로토컬) ES5와 ES6에서 리스트 순회는 어떤 점이 다를까요? ES6 리스트 순회 방법으로 Array, Set, Map을 순회하여 봅시다! 이터러블, 이터레이터, 이터러브 프로토컬이란 사용자 정의 이
자바스크립트 빌트인 이터러블이 아닌 사용자가 특정 데이터 구조를 순회가능하도록 만들기 위해서 사용자 정의 이터러블을 만들수 있습니다. 우선 이터러블은 Symble.iterable 매소드를 가져야 합니다.이 Symble.iterable 매소드는 iterator 객체를 r
제너레이터란? 제너레이터 함수는 이터레이터를 생성하는 데 사용될 수 있습니다. 이터레이터를 생성하기 위해 제너레이터 함수를 작성하면, yield 키워드를 사용하여 순차적으로 값을 반환하고 이터레이터를 제어할 수 있습니다. 제너레이터는 이터러블이자 이터레이터(well
함수형 프로그래밍에서 map, filter, reduce는 매우 활용이 많이 된다.아래처럼 만든 함수은 array(프로토타입 기반, 뿌리를 가진 함수) 뿐만 아니라 interable protocal을 따르는 많은 값 또는 gen함수(문장)들을 사용할 수 있다. => 모
지난번 Array의 reduce, filter, map함수를 interable용으로 만들어보며 함수를 값으로 다루는 방법에 대해 알아보았다. 작성한 함수는 아래와 같이 사용할 수 있었다.최종적으로 map, filter, reduce를 모두 활용한 코드는 아래와 같이 여
ES6에서 도입된 제너레이터와 이터레이터 프로토콜은 지연평가(Lazy Evaluation)를 가능하게 하여 코드를 값으로 다루고, 안전하게 조합할 수 있는 기능을 제공합니다.지연평가는 게으르다는 표현도 쓰지만, 영리한 평가라는 말도 씁니다. 그만큼 가장 필요할때까지 평
for of의 숨겨진 코드우선 1번 즉시 실행되는 함수의 경우 한번에 배열을 다 만들고 하나씩 map, filter를 실행한후 take로 배열을 자른다. 그리고 2번의 경우 아래의 순서로 지연 실행됩니다.1\. range가 제너레이터가 만든 이터레이터를 map에게 전달
콜백함수에 비해서 promise가 더 간단하게 구현할 수 있다.비동기 상황을 일급 값으로 다룬다는 점이다.promise라는 클래스로 만들어진 인스턴스를 반환한다. 그 promise는 대기, 성공, 실패를 다루는 일급값으로 이루어져 있다.(code나 context로만 다
모나드는 함수 합성을 안전하게 해줍니다. 이를 위해서는 함수가 합성되는 시점의 상태를 확인합니다. 예를 들어 Array+map의 함수 합성에서는 그 시점에 array의 값이 있는지 확인한 후 함수 합성을 실행하고, Promise+then의 경우에는 비동기가 일어났는지
Kleisli composition은 함수형 프로그래밍에서 두 개의 Kleisli 함수를 조합하는 기술을 가리킵니다. Kleisli 함수는 모나드를 사용하는 함수로, 입력을 받아 모나드 값을 반환합니다. 이러한 함수를 조합하여 모나드 내의 값을 연속적으로 처리하거나 변