group_by, count_by함수가 좋은건지 잘 모르겠습니다.
안녕하세요? 좋은강의를 무료로 공개해 주셔서 감사한 마음으로 잘 듣고있습니다!
공부하다 map, filter, reduce에 비해 group_by, count_by함수는 좋다는 느낌이 들지 않아서 답답함을 해소할 수 있을까 싶어 질문 드립니다.
제가 그냥 생각해 봤을때는 group_by를 통해 멋지게 그룹핑을 했다면 그 결과를 reduce와 같은 함수를 이용해서 집계를 하는게 좋다고 생각을합니다. 예를들어서 다음과 같이 동작했으면 좋겠습니다.
_go(
[{a:1, b:1}, {a:2, b:2}, {a:3, b:1}, {a:4, b:3}],
list => _group_by(list, obj=>obj.b),
grouped => _group_reduce(grouped, (a_sum, obj)=>a_sum+obj.a, 0),
console.log,
)
// 결과
{
'1': 4,
'2': 2,
'3': 4,
}
이런 저의 바람과는 달리 카운팅 이라는 단순한 동작을 위해서도 새롭게 'count_by함수를 만들어 낸다'는점이 앞에서 배운 '함수형'이라는 느낌이 나지 않는거 같습니다.
이렇게 된다면 위의 예제와 같이 group_by된 결과에서 a의 값을뽑아 모두 더하는 작업을 하려면 '_group_by_add_a'와 같은 함수를 만들어야 하고, 또 다른 작업을 하려면 또 새롭게 무언가를 만들어내야 할 거 같습니다.
그리고 map, filter, reduce등은 array like를 만들어 내고 이 결과는 go를통해 계속하여 연결해 쓸 수 있는 느낌이었지만, group_by, count_by는 객체를 리턴해 버려서 더이상의 진행은 없는 느낌이 듭니다. (물론 Object.values후 flat 하면 다시 Array가 되긴 합니다만, 이렇게 해버리면 에초에 그룹으로 묶은 의미가 사라지는게 아닐까 합니다.)
위와같이 그룹에 대해서 또 다시 연산하는 무언가를 나중에 배우는 건가요? 아니면 함수형은 마지막을 만들어둔 집계함수로 마무리하는게 끝인 건가요? 그리고 return이 객체인 경우 그 이후 진행을 어떻게 하는게 좋은지도 궁금합니다.
감사합니다.
답변 1
1
안녕하세요. :)
함수를 매번 만드실 필요는 없습니다.
강의에서 count_by 와 group_by를 만든건 reduce를 통해 이런 로직들을 구현하는 것이 편리하다라는걸 보여드리기 위해서이지 필요할때마다 함수를 만들어서 써야한다라는 이야기를 드린건 아닙니다.
reduce는 보통 프로그램의 결과입니다. 물론 그 이후에도 연산을 하려면 말씀하신대로 entires나 values를 이용하면 됩니다.
좋은 하루 되세요. :)
FxTS를 이용한 함수형 프로그래밍에 대해 궁금한점이 있습니다.
1
292
1
안녕하세요. 유인동님 함수형 프로그래밍 2편을 구매했는데
0
351
2
_go함수 _pipe.apply(null, fns) 사용하는 이유
0
404
2
커리큘럼 관련 질문 입니다.
0
347
2
ES5 강의를 듣고 ES6 강의를 듣는게 좋을까요?
0
861
2
_get 함수 부분이 너무 이해가 안갑니다 ㅠ
0
656
2
거르기 함수 중 compact 질문드립니다.
0
476
1
강의 잘봤습니당
0
452
1
다형성 파트 _each함수 내부 코드 관련 질문
0
323
1
FP 함수 표준이 있는지 궁금합니다.
0
365
2
_curryR 을 적용한 _map 혹은 _filter함수 질문입니다!!
0
451
4
_reduce 질문 있습니다!
0
388
1
0:24 평가시점
0
255
2
10:18 아무래도 클로저가 리스프? 다 보니까
0
309
1
평가시점이 뭐에요? 16:30초 부터
0
367
1
강의자료
0
291
1
pipe 함수에 질문있습니다
0
284
1
대입문
0
343
1
Call을 사용하는 이유
0
287
1
좋은 강의 감사합니다.
0
274
1
순수함수에 대해서 질문있습니다.
0
428
1
13:40 _filter함수 질문
0
281
1
소스 내 변수형
0
227
1
Apply와 Call의 차이
0
230
1





