Javascript/Functional Programming In JavaScript
-
Functional Programming in Javascript(함수형 자바스크립트) day 06Javascript/Functional Programming In JavaScript 2019. 2. 8. 15:54
3. 자료구조는 적게, 일은 더 많이 이 장에서는 자료구조를 순차적으로 탐색/변환 하는데 쓰이는 실용적인 연산 몇가지 map, reduce, filter를 소개합니다.코드에서 수동루프를 없앨 목적으로 쓰입니다. 또한 로대시JS의 사용법을 배웁니다.함수형 프로그래밍에서 재귀가 차지 하는 막대한 비중에 아대해 알아보고 재귀적 사고방식이 어떤점에서 좋은지 설명합니다. 3.1 애플리케이션의 제어흐름- 프로그램이 정답에 이르기까지 거치는 경로를 제어 흐름이라고 한다.- 명령형 프로그램은 작업 수행에 필요한 전 단계를 노출 하여 흐름이나 경로를 자세히 서술한다.- 선언적 프로그램, 특히 함수형 프로그램은 독립적인 블랙박스 연산들이 단순하게 최소한의 제어구조를 통해 연결되어 추상화 수준이 높다.- 연산을 체이닝 하면..
-
Functional Programming in Javascript(함수형 자바스크립트) day 05Javascript/Functional Programming In JavaScript 2019. 2. 7. 14:37
2.3 함수함수형 프로그래멩에서 함수는 작업의 기본 단위 입니다.함수는 ()연산자를 적용하여 평가할 수 있는 모든 호출 가능표현식을 가리키며 호출자에게 계산한 값 또는 (void함수라면) undefined을 반환합니다.FP의 함수는 수학책에 나오는 함수처럼 (null이나 undefined가 아닌) 사용가능한 결과를 낼 경우에만 유의미 하며 그 외에는 외부 데이터 변경등의 부수 효과를 일으킨다고 볼 수 있습니다. 이 책에서는 표현식(expression - 값을 내는 함수)과 구문(statement(값을 내지 않는 함수)두 용어를 구분 합니다.명령형/절차형 프로그램은 대부분 일정한 순서로 구문을 나열하지만, FP코드는 전반적으로 표현 위주라서 void 함수는 도움이 되지 않습니다. 자바스크립트 함수에는 함수..
-
Functional Programming in Javascript(함수형 자바스크립트) day 04Javascript/Functional Programming In JavaScript 2019. 2. 1. 03:29
2.2.3 가동부를 깊이 동결자바스크립트의 클래스 구문 중에 불변 필드를 표시하는 키워드는 따로없지만 writable 처럼 숨겨진 메타속성을 제어하면 내부 조작이 가능 하다.Object.freeze() 함수는 writable 속성을 false로 세팅해서 객체상태를 못 바꾸게 동결합니다. Object.freeze()함수의 사용법은 아래와 같습니다. const person = Object.freeze(new Person('Haskell', 'Curry', '444-44-4444'));person.firstname = 'Bob'; //허용되지 않음위 코드를 실행하면 person의 속성은 모두 읽기 전용상태로 바뀌어 속성을 변경하려고 하면 에러가 납니다. Object.freeze()는 상속한 속성까지 고정하므로..
-
Functional Programming in Javascript(함수형 자바스크립트) day 03Javascript/Functional Programming In JavaScript 2019. 1. 31. 19:20
2. 고계 자바스크립트2.1 왜 자바스크립트인가?- 편재성(어디에나 있음)- 표현력이 풍부한 구문을 갖고 있음- 동적형식- 객체지향적 범용언어- 지금까지 인류가 만든 모든 언어중 가장 널리 쓰임- 모바일 앱, 웹서버, 웹사이트, 데스크톱,임베디드 앱, DB에 이르기까지 응용분야가 실로 광대함.- 웹을 대표하는 맹주언어- 리스프, 스킴의 고계함수, 클로저 ,베열 리터럴 의 공통점 자바스크립트가 FP기법을 활용할수 있는 플랫폼이 되는데 초석이됨.- 자바스크립함수는 주요 작업단위로 애플리케이션에게 할일을 시키는 역할 뿐아니라 객체 정의, 모듈생성, 이벤트 처리등의 책임도 맡음- ES6로서 화살표함수, 상수, 이레이터, 프로미스 등 함수형 프로그래밍에 걸맞은 기능이 많이 추가됨. - 하지만 자바스크립트는 어디까..
-
Functional Programming in Javascript(함수형 자바스크립트) day 02Javascript/Functional Programming In JavaScript 2019. 1. 30. 14:39
1.2.2(day 01 에 이어서)커링기법 - 함수의 여러 인수를 부분적으로 나누어 세팅하는것. (https://anster.tistory.com/144 - 커링에 대한 설명과 예제) 커링기법의 장점-재사용 가능한 컴포넌트 n개로 나뉘어 코드가 훨씬 유연해짐- 신경써서 관리할 코드 크기가 확줄기땜누에 생산성 높아짐- 프로그램들이 해야할 일들을 고수준에서 단계별로 명확하게 보여주는 선언적 스타일을 따르므로 코드 가독성 향상 1.2.3 참조 투명성과 치환성참조투명성은 순수 함수를 정의하는 좀 더 공식적인 방법이다(?)순수성 : 함수의 인수와 결과값 사이의 순수한 매핑관계를 의미( 1:1 맵핑?)참조 투명성 : 동일한 입력을 받았을때 동일한 결과를 내는것 참조 투명한 함수를 만들려면 외부함수를 사용하지 않고 ..
-
Functional Programming in Javascript(함수형 자바스크립트) day 01Javascript/Functional Programming In JavaScript 2019. 1. 30. 11:49
1. 함수형 길들이기리액티브 프로그래밍은 데이터의 흐름(data flow)과 변경의 전파(propagation of change)에 초점을 둔다. 생산성을 높여주는 애플리케이션의 설계요소- 확장성 : 추가기능을 지원하기 위해 계속 코드를 리팩터링 해야하는가- 모듈화 용이성 : 파일 하나를 고치면 다른 파일도 영향을 받는가?- 재사용성 : 중복이 많은가?- 테스트 용이성 : 함수 단위를 테스트하기 어려운가?- 헤아리기 쉬움 : 체계도 없고 따라가기 어려운 코드인가? 1.1 함수형 프로그래밍은 과연 유용한가.함수형 프로그래밍은 위와 같은 문제를 해결해준다 자바스크립트는 상태관리를 개발자에게 떠넘기는 동적인 플랫폼이다. ->상태관리?! 함수형 프로그래밍은 순수함수에 기빈을 두고 검증된 기법과 관계에 따라 구현..