함수형 프로그래밍- reduce함수function _reduce(list, iter, memo){ if(arguments.length == 2){ memo = list[0]; //slice는 array만 사용가능 list = list.slice(1); } _each(list,function(val){ memo = iter(memo,val); }); return memo; } console.log( _reduce([1,2,3], add, 0)); //6 memo = add(0,1); memo = add(memo, 2); memo = add(memo, 3); return memo;reduce는 말 그대로 축약하는 함수이다. (재귀)개발자가 고민을 덜하게한다.쉽게 코딩을 할 수있다. console.lo..
커링함수와 인자를 다루는 방법필요한 인자가 다채워지면 함수 실행 (중요한 개념)함수를 조합해 나가는 개념이다!! 함수형 프로그래밍의 대표적 예이다.function _curry(fn){ return function(a){ return function(b){ return fn(a,b); } } } //example var add= _curry(function(a,b){ return a+b; }) 1.console.log(add(5)(3)); 2.var add5=add(5); console.log(add5(3)); 1과2는 같은결과-심화아래와 같이 위의 curry함수를 바까야 add(1,2)와 같은 형태를 실행시킬수 있음. 기존 함수로 실행하면 함수리턴 function _curry(fn){ ..
다형성 map, filter등은 함수가 아니라, 객체의 메소드이다.메소드는 해당클래스의 인스턴스에서만 작동 (map,filter는 array 에서만 작동)jquery 객체 => array like 객체 , array가 아니라 map과 filter를 쓰지 못함.function _map(list,mapper){ var new_list=[]; for(var i=0;i객체지향적)응용형 함수,고차함수들은 두번째 보조함수 안에서 자유롭게 수정이 가능하므로, 데이터면에서 자유롭고, 다형성인면이 있음! (_map, _filter)
함수형 프로그래밍 function _filter(list,predi){ var new_list=[]; for(var i=0;i=30;}));응용형 프로그래밍, 적용형 프로그래밍filter함수 ->고차함수,응용함수고차함수란? -함수안에 함수 function _map(list,mapper){ var new_list=[]; for(var i=0;i=30;}); var ages = _map(over_30,function(user){ return user.age; })
요즘 개발이야기재미/실시간성 (라이브방송,실시간 댓글,협업,메신저) 독창성/완성도(애니메이션,무한스크롤)많아지는 동시성(비동기 I/O,많은사람들이 동시에 접속)빨라지는 반응성/고가용성 대용량/정확성/병렬성복잡도/MSA (많아지고 세밀해지는 도구들) -> 예전에는 하나의 프레임워크가 모든 일을 했다면,지금은 도구들이 분화되고 세밀화 됨고가용성이란? 죽지않는 서비스(OTP Supervisor)좋아지는 하드웨어 성능좋아지는 컴파일러좋아지는 분산/리액티브 환경동시성+병렬성 관련기술->함수형 프로그래밍 함수형프로그래밍 함수형 프로그래밍은 애플리케이션, 함수의 구성요소 더나아가 언어 자체를 함수처럼 여기도록 만들고, 이러한 함수 개념을 가장 우선순위에 놓는다.함수형 사고방식은 문제의 해결방법을 동사(함수)들로 구성..
일급함수var f1=function(a){return a*a;}; console.log(f1); var f2=add; console.log(f2); function f3(f){ return f(); } console.log(f3(function(){return 10;})) f3은 함수를 받아서 그결과를 리턴->일급함수/*add maker*/ function add_maker(a){ return function(b){ return a+b; } } var add10= add_maker(10); console.log(add10(20)); 30이라는 결과가 나온다. 클로저 function f4(f1,f2,f3){ return f3(f1()+f2()); } f4( function(){retu..
함수형 프로그래밍 =>성공적 프로그래밍 함수형 프로그래밍은 성공적인 프로그래밍을 위해 부수효과를 미워하고, 조합성을 강조하는 프로그래밍 패러다임이다. 부수효과 미워한다? => 순수함수를 만든다.조합성 강조 => 모둘화 수준 높인다.순수함수 => 오류를 줄이고 안정성 높인다.모듈화 수준이 높다 => 생산성이 좋다. 순수함수 => 동일한 결과, 외부에 영향을 끼치지 않음. 순수함수function add(a,b){return a+b;} 순수함수가 아닌 함수들var c=10;function add2(a,b){return a+b+c;} var c=20;function add3(a,b){c=b;return a+b;} var obj1={val: 10};function add4(obj, b){obj.val+=b;}ad..