본문 바로가기

함수형 프로그래밍4

함수형 자바스크립트 - 7장 순수성, 불변성, 변경 정책 함수형 프로그래밍은 소프트웨어 개발의 복잡성을 최소화하는 개발 방식을 추구한다. 상태 변화를 최소화 하거나 아예 없애는 것은 복잡성을 줄일 수 있는 방법 중 하나다. 7.1 순수성 function randString(len) { var ascii = repeatedly(len, partial1(rand, 26)); return _.map(ascii, function(n) { return n.toString(36); // 책에 빠져 있음 오타...;;; }).join(''); } randString은 함수에 다른 함수를 이용해 고수준 기능을 구현한 함수이다. 하지만 이전의 다른 차이점이 있다. 'randString'은 테스트를 할 수 있는 가? 7.1.1 순수성과 테스트의 관계 describe("randS.. 2017. 2. 4.
함수형 자바스크립트 - 4장 고차원 함수 고차원 함수 고차원 함수는 일급이다. 함수를 인자로 받는 다. 함수를 결과로 반환한다. 4.1 다른 함수를 인자로 취하는 함수 4.1.1 함수 전달에 대한 고찰 _.max([1,2,3,4,5]) => 5 //가장 큰 수를 찾는 함수 var people = [{name: "Fred", age: 65}, {name: "Lucy", age: 36}]; _.max(people, function(p) { return p.age }); // 두번 째 인자를 함수로 받아 비교할 값을 선택한다. [고차원 함수] //=> {name: "Fred", age: 65} max 함수는 두번째 인자로 함수를 받아 객체에서 비교할 값을 선택할 수 있게 한다. max에서는 '>' 연산자로만 비교가 가능하다. (제한적, 진정한 함수형.. 2017. 2. 3.
함수형 자바스크립트 - 2장 일급 함수와 응용형 프로그래밍 2.1 일급 함수의 특징함수형 프로그래밍의 정의를 간단히 '일급 함수' 와 '편의성'이라는 두 용어로 요약할 수 있다.'일급'이라는 용어에는 모든 것을 값으로 취급한다는 의미가 내포되어 있다.var a = function() {} // 함수를 변수에 저장할 수 있다. function b(f) { // 함수에 전달인자로 전달 할 수 있다. f(); } function c() { return function() {}; // 함수를 리턴 할 수 있다. }함수를 인자로 받거나 리턴하는 함수를 고차원 함수라고 부른 다.2.1.1 자바스크립트의 다중 패러다임명령행 프로그래밍동작을 자세히 설명하는 방식에 기반한 프로그래밍.프로토타입 기반 객체 지향 프로그래밍프로토타입형 객체와 인스턴스에 기반한 프로그래밍.메타프로그래.. 2017. 1. 9.
함수형 자바스크립트 - 1장 함수형 자바스크립트 소개 1.1 자바스크립트 활용사례자바스크립트를 사용하는 이유풍부한 접근성보편성이식성단일 페이지 애플리케이션 패러다임의 훌륭한 본보기다.자바스크립트가 함수형 프로그래밍을 지원한다.계속 발전하고 있는 언어이다.[1,2,3].forEach(console.log); // 배열의 요소를 한 개씩 함수로 전달한다.apply 함수배열 요소를 함수의 인자처럼 전달한다.function splat(fun) { return function(array) { return fun.apply(null, array); }; } var addArrayElements = splat(function(x, y) { return x + y }); addArrayElements([1, 2]); //배열을 전달 //-> 3함수에는 인자의 개수와 형식.. 2017. 1. 9.