Thumbnail
BEST 개발 ・ 프로그래밍 웹 개발
자바스크립트로 알아보는 함수형 프로그래밍 (ES5)
(4.9)
162개의 수강평 ∙ 8727명의 수강생

무료

지식공유자 : 유인동
총 22개 수업˙총 6시간 38분
평생 무제한 수강
수료증 발급 강의
초급 대상
내 목록 추가 공유
mlmlmlmlm 프로필

안녕하세요 강사님. 좋은 강의 감사합니다. 비동기 코드에 대해 한 가지 질문들 드려도 될런지요. mlmlmlmlm 20시간 전
안녕하세요 강사님. 좋은 강의 감사드립니다. 다름 아니라 아래 코드와 같이 제너레이터를 전개해서  실행 시 왜 병렬 실행이 되는건지 궁금합니다. C.take = curry((l, iter) => take(l, catchNoop(iter))); C.takeAll = C.take(Infinity); C.map = curry(pipe(L.map, C.takeAll)); 좋은 하루 되십시오 감사합니다.

2
달 프로필

대입문? 11일 전
함수형 프로그래밍은 값을 만들어 놓고 문장을 내려가면서 변형해 나가는 것이 아니라 통과해 나가면서 한 번에 값을 새롭게 생성하고 대입문?을 별로 사용하지 않음. 이 무슨 소린지 모르겠어요.... 함수 너무 어렵네요ㅜㅜㅜ 조금 쉽게 저게 무슨 의미인지 설명해 주실 수 있나요???

1
김민수 프로필

group_by, count_by함수가 좋은건지 잘 모르겠습니다. 김민수 1달 전
안녕하세요? 좋은강의를 무료로 공개해 주셔서 감사한 마음으로 잘 듣고있습니다! 공부하다 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
쿠크다스 프로필

reduce 함수는 순수함수인가요? 쿠크다스 3달 전
안녕하세요. 7:10 작성된 reduce 함수에서 함수 인자인 memo를 직접 변경하고 있는데 reduce를 순수함수라고 볼 수 있나요?

3
스위토피 프로필

pipe 함수에서~ 스위토피 3달 전
return _reduce(fns, function(arg, fn){ return fn(arg);}, arg); (조금 원초적인 질문일수도 있습니다만..) 위의 리듀스함수가 실행되면 each함수의 iter(list[i])가 실행되어서 fn인자값 하나씩 전달하는데, 선언되었던 iter함수는 arg, fn 두개를 받는 형식으로 되있잖아요. 함수 실행순서상 첫번째 arg 매개변수를 받은 상태면, each함수에서 한개의 값만 인자로 넘기는 형태여도 알아서 두번째 매개변수로 받아서 실행하나요? 

1
스위토피 프로필

memo = iter(memo, val) 스위토피 4달 전
안녕하세요. 05:00 에서 memo를 계속 덮어쓰는 memo = iter(memo, val) 구문이 처음 실행될 때, 좌변의 memo는 값이 없는 임의의 변수에서 0, 1이 더해진 1이 할당되는 거 맞나요?

1
mkp0131 프로필

_get 함수에서 curryr 사용 질문입니다. mkp0131 5달 전
const _get = _curry(function (key, obj) { if (obj === undefined) { return null; } else { return obj[key]; } }); _curryr 이 아닌 _curry 를 사용하고 key를 첫번째 인자로 할당하면 똑같은 코드라고 생각이 됩니다. 혹시 _curryr 을 사용하는 특별한 이유가 있을까요?

1
hgson.8 프로필

자바스크립트로 알아보는 함수형 프로그래밍 (ES5) 섹션 2 each에서 _each함수가 list를 리턴하는 이유를 알려주세요 hgson.8 7달 전
안녕하세요:) 제목 그대로 _each함수에서 인자로 받은 list를 다시 리턴하는 이유를 알고 싶습니다. _map이나 _filter함수에서 리턴되는 new_list에는 push로 값이 들어가고 return 부분을 없애도 함수는 정상작동하는 것 같아서요..!  답변주시길 기다리겠습니다 감사합니다~~

1
pmmh9395 프로필

curry,curryr질문입니다. pmmh9395 7달 전
var sub = _curry 부분에서   var sub10 = sub(10);  console.log(sub10(5));  이 부분에서 표현이 좋지 않기 때문에 _curryr 사용하셨는데 어떤점에서 표현이 좋지않다는 게 이해가 안됩니다

2
kain7402 프로필

3. 30세 미만인 user를 거른다. kain7402 8달 전
30세 미만인 users를 거른다. for(var i=0; i < users.length; i++){ if(users[i].age > 30){       temp_users.push(users[i]); } } 이게 맞는거 아닌가요? 수집이 아니라 거른다니까요...

1
띵호 프로필

함수 네이밍 띵호 9달 전
안녕하세요. 선생님 강의 잘 보고있습니다. 함수 네이밍 관련해서 질문이 있습니다. 함수 맨 앞에 언더바를 사용해서 만드셨는데요. 언더바가 어떤걸 의미하는지 알 수 있을까요? 종종 언더바가 붙은 함수네임을 보곤하는데 정확히 어떤의미를 가지고 있는지 궁금합니다.

2
송경진 프로필

순수함수 송경진 9달 전
add2가 순수함수가 아니면 add5도 순수함수가 아닌거 아닌가요? add5도 obj1.val 값이 바뀌면 리턴값도 변하니까요..

1
jfmam 프로필

질문있습니다. jfmam 2020.01.20
안녕하세요. 최근에 async await으로 새로 나온것이 있다고 들었는데 promise나 콜백으로 따로 써야하는경우도 있을까요?

1
jfmam 프로필

curry를 사용하는이유 jfmam 2020.01.17
안녕하세요.궁금한게 있어서 질문을 올립니다 curry문의 경우 사용되는 예시나 사용하는 이유가 궁금합니다. 방금 같은 더하기 같은경우에는 a+b로하는게 더간단한데 인자가충족될때까지 함수를 호출하는 이유가 궁금합니다

1
hhhh 프로필

이전까지의 강의와,, hhhh 2020.01.04
이전까지의 강의와 지연평가는 연관성이 적어 보이는데,, L 안의 메서드들은 제너레이터로 구현이 되어있어서 지연평가가 가능한 것인가요. 같은 함수형 메서드들임에도 불구하고, _과 L의 메서드들은 구현에 있어서 어떤 차이점이 있어 평가가 다르게 시행되는지 궁금합니다.

1

무료

내 목록 추가 공유
지식공유자 : 유인동
총 22개 수업˙총 6시간 38분
평생 무제한 수강
수료증 발급 강의
초급 대상
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스