일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 리눅스
- 원격 브랜 삭제
- 백명석님
- @TransactionalEventListener
- aws
- ksqldb
- HandlerMethodArgumentResolver
- Stream
- intellij favorites
- git
- Linux
- multipart테스트
- @Transactional Propagation
- java
- JPA
- 리팩토링 2판
- 자바 ORM 표준 JPA 프로그래밍 정리
- javascript case
- CompletableFuture
- 마이크로 서비스
- IntelliJ
- vue.js
- 자바 ORM 표준 JPA 프로그래밍
- intellij 핵심 단축키
- intellij 즐겨찾기
- findTopBy
- ksql
- #docker compose
- Spring Cloud Netflix
- 친절한 SQL 튜닝
- Today
- Total
시그마 삽질==six 시그마
함수형 프로그래밍 본문
Wikipedia에서 말하는 함수형 프로그래밍 정의
In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. In functional code, the output value of a function depends only on its arguments, so calling a function with the same value for an argument always produces the same result.
즉 함수형 프로그래밍은 순수 함수를 작성하여 프로그램의 부작용을 줄이는 프로그래밍 기법임.
*순수함수란
1. 같은 인자에 대하여 항상 같은 값을 반환해야함(부작용이 없다)
2. 함수안에서 함수 외부의 어떤 상태도 바꾸지 않는다.(함수에 영향을 주는건 인풋뿐임)
함수형 패러다임에서는 함수를 일급객체로 생각한다. 일급객체는 요기를 참조하자.
(람다식은 일급객체의 특징을 가진 이름없는 함수임)
*고차함수란
다른 함수를 인자로 사용하거나 함수를 결괏값으로 변환하는 함수
*함수형 프로그래밍의 특징
1. First-Class Functions
2. Higher-Order Functions
3. Primary Flow Controls ->Avoid iterate(For,Loop,Do,While..) instead use map, filter ,reduce <--선언형방식(표현력 up)
4. Avoid mutability(use immutalbe data) structure sharing
-Persistent data structures for efficient immutability
기존 데이타 h1,h2,h3
h1,h2,h4 필요할때 새로운 구조를 만드는게 아니라
h1,h2,h3 구조를 트리로 변경, 그리고 h4 leaf 추가해서 h4를 연결 <==structure sharing
Functional Data Structure
.Control with pure functions
.Immutable Data Structure
.Data Share
'프로그래밍 > Programming stuff' 카테고리의 다른 글
애플리케이션 아키텍처와 객체지향 (0) | 2020.04.12 |
---|---|
우아한 객체지향 (0) | 2020.04.11 |
모나드(Monad) (0) | 2020.03.04 |
클로저 Closure (computer programming) (0) | 2020.03.04 |
일급객체(First-class citizen) (0) | 2020.03.03 |