generator의 yield*로 for...of 대체하기
flatten을 lazy evaluation으로 만들기 위해 아래와 같은 함수를 작성했습니다. depth를 2 이상 가진 배열을 돌리면, 완전히 flatten되지 않습니다. 우선 위 함수 내부에 for...of 문이 중첩되어 들어가는 것이 가독성이 좋지 않게 보이므로 yield *를 활용하여 가볍게 만들겠습니다. // iterable 안의 값도 iterable이면 펼쳐내는 작업. 단, depth가 1인 경우만 됨 const faltten = function* (iter) { for (const val of iter) { if (isIterable(val)) { for (const inner of val) { yield inner; } } else { yield val; } } }; console.log(..