자바스크립트는 싱글스레드 프로그래밍이기 때문에 병렬적으로 처리하는 일은 별로 없지만 NodeJS에서 NoSQL의 여러개의 쿼리를 가져오거나 이미지 처리 등과 같은 거에서 병렬적으로 평가하는 일이 필요하다
지연 평가 + Promise - L.map, map, take Kleisli Composition - L.filter, filter, nop, take
tip) typeof: typeof는 unary 오퍼레이터이다. unary 오퍼레이터로는 ! 라던가 - 등과 같이 인자를 하나만 받을 수 있는 연산자를 뜻한다. 즉, 함수가 아니고 연산자이기 때문에 괄호를 사용하면 안된다.instanceof: instanceof 는 비
// map, filter는 지연성을 가진다. 중첩해서 사용하여 iterator를 만들어 가는 함수// reduce는 시작점을 알리는 함수, iterator의 값들을 꺼내서 깨트리는 함수, 지연성을 가지기 보다는 연산이 이루어 진다.// take는 몇개로 떨어질지 모르
숫자를 하나 받고 그 숫자의 크기만큼 배열을 리턴하는 함수range는 range가 실행 되었을 때 이미 모든 부분의 평가가 되면서 배열로 값이 만들어 지지만(나중에 reduce, map 안에서 값으로 만들어진 배열이 Symbol.iterator로 이터레이터를 만들어서
코드를 값으로 다루어 표현력 높이기 go, pipe go를 이용한 좋은 코드 go + curry를 이용하여 더 좋은 코드 pipe를 이용하여 중복 제거
예제)
array의 키로 사용될 수 있다.arr, set, map은 자바스크립트의 내장객체로서 이터러블/이터레이터를 따르고 있다.이터러블 : 이터레이터를 리턴하는 Symbol.iterator 를 가진 값이터레이터 : {value, done} 객체를 리턴하는 next() 를 가
코드가 계산되어 값을 만드는 것값으로 다룰 수 있다.변수에 담을 수 있다.함수의 인자로 사용될 수 있다.함수의 결과로 사용될 수 있다.함수를 값으로 다룰 수 있다.조합성과 추상화의 도구함수를 값으로 다루는 함수apply1timesaddMaker// 클로저를 리턴하는 함
1.\_each의 외부 다형성 높이기\_keys 만들기\_each 외부 다형성 높이기객체가 들어가도 실행 가능
\_pipe함수들을 인자로 받아서 이 함수를 연속적으로 실행해주는 함수이다.\_go즉시 실행하는 \_pipe 함수
리듀서 만들기
커링 : 함수의 인자를 다루는 기법, 함수에 필요한 인자가 전부 채워지면 함수를 실행하는 기법1-1. curry1-2. curry 응용 (인자의 개수에 따라 달라지는 로직)1-3 \_curryr2-1 \_get 만들어 좀 더 간단하게 표현\_get : object와 k
\_each로 \_filter, \_map 리팩토링each로 외부 다형성 실행하기map, filter 같은 함수들은 javascript에 이미 있다. 그럼 왜 \_map, \_filter를 따로 구현했을까?javascript의 map, filter는 순수함수가 아니라
함수형과 객체형의 차이회원목록, map, filter1 일반적인 명령형 코드2 map, filter를 이용한 코드filter 응용형 함수, 고차함수응용형 함수 : 함수를 인자로 받아서 그 함수를 이용하여 인자를 변경할 때고차함수 : 함수를 인자로 받거나 함수를 리턴하거
순수함수1\. 동일한 인자에 대해 동일한 결과값을 나타내야된다. ( 수학적 함수 )2\. 인자로 받은 값을 변경하지 않는다.3\. return 값 이외에 다른 방식으로 외부상태에 직접 관여하고 소통하면 안된다.4\. 평가 시점이 중요하지 않는다. ( 언제 어떤 위치에서