함수형 프로그래밍 함수형 프로그래밍은 성공적인 프로그래밍을 위해 부수효과를 미워하고, 조합성을 강조하는 프로그래밍 패러다임이다. 부수 효과를 미워한다 === 순수함수를 만든다. 조합성을 강조한다 === 모듈화 수준을 높인다. 순수함수 동일한 인자를 주면 동일한 값
응용형 프로그래밍 : 함수를 인자로 받아서 원하는 시점에 평가를 하면서 함수 안에서 알고 있는 인자를 적용해 나가면서 로직을 완성해 나가는 프로그래밍위 4가지 함수를 함수형 프로그래밍의 특징 중 하나인 응용형 함수, 컬렉션을 다루는 함수로 만들어 본다.함수형 프로그래밍
filter, map 함수에서도 for, list[i]부분이 중복된 걸 확인할 수 있다. _each함수를 만들어 중복을 제거해 보자.
우리가 만들었던 filter, map 함수와 같은 기능이 이미 Array 내장함수에 정의되어 있다.동일한 기능을 하지만, 위 map과 filter는 함수가 아닌 메서드다.메서드는 순수함수가 아니고, 객체 상태에 따라 결과가 달라지는 특징을 가지고 있다.메서드는 객체 지
커링은 함수와 인자를 다루는 기법curry 기법은 함수를 원하는 시점까지 미뤄 두었다가, 원하는 시점에 평가하는 기법위 코드는 함수가 결과값으로 리턴된다.add함수는 위 코드에서 return function(a) { 이렇게 하나의 인자만 받게 되므로 실행되지 않고 함수
reduce 함수의 용도는 받은 인자로 새로운 결과를 도출하기 위해 사용한다.위 코드를 적용시키면 reduce함수는 다음과 같이 구현할 수 있다.만약 3번째 인자인 memo가 없다면 list의 첫번째 값을 memo로 사용하게 만들어 준다면 다음과 같이 만들 수 있다.하
pipe 함수pipe함수는 여러개의 함수를 연속적으로 실행할 때 유용하다.pipe함수는 함수를 리턴하는 함수이다.go 함수첫번째 인자로 값을 받고, 두번째 인자부터 함수를 받은 후 결과를 만드는 함수.이전에 사용했던 코드에 go를 적용해보자.화살표 함수객체형을 retu
each함수 null 대응기존 each 함수의 경우 list가 null일 경우 에러가 발생한다. null error 발생을 대비하여 \_get 함수를 이용해보자.list.length부분에 undefined가 들어가게 되면 에러가 발생하지 않고 false로 떨어지기 때문
이전에 만든 map 함수를 이용하여 반복이 가능한 자료들을 수집하는 기능에 좀 더 특화된 기능을 만들어 본다.먼저 map 함수에 대해 복습하자면map함수는 컬렉션 객체의 특정 키의 값을 꺼내는 역할을 한다.이 함수를 이용하여 values함수와 pluck함수를 만들 수
reject함수는 filter함수를 거꾸로 구현했다고 생각하면 된다.
find는 배열 안에 있는 값을 특정 조건에 맞는 값을 처음 만났을 때 return하는 함수이며,find_index함수는 해당하는 값을 처음 만났을 때의 index값을 리턴하는 함수이다.find_indexfind_index와 \_get함수를 이용하여 새로운 리턴값을 도
min은 가장 작은 값, max는 가장 큰 값을 리턴하는 함수이다.평가 순서와 상관없이 해당하는 결과를 만들 수 있는 식을 사고하는 방식이 중요하다.자료구조를 넘길 때 값이 수의 순서대로 넘어오는 것이 아닌 랜덤으로 넘어올 수 있다는 식으로 생각해야 한다.예를 들어 \
group_by는 특정 조건을 만족시키는 값들을 그룹지어 리턴하는 기능을 가진다. 예를들어,이렇게 그룹이 지어진 값이 리턴된다. 구현을 해보자.curryr인자로 function을 주게되고, group_by는함수를 리턴 받게 된다.를 실행하게 되면 data는 users가
평가란 무엇인가.함수에서의 평가는 함수를 수행해서 결과를 구한다이고, 즉, 함수의 평가란 변수를 주어진 숫자 또는 표현식으로 대체하는 것을 의미한다.ex)f(x) = 2x + 4 함수를 , x = 5로 평가한다면, x에 주어진 5를 대입한다.f(5) = 2\*5 + 4