Upload
-
View
459
Download
3
Embed Size (px)
Citation preview
Immutable
Side Effect
Pure FunctionComposition
Iterator
Generator
Function
Reduce
Map
Consumer
First-Class Citizen
High-Order Function
Imperative Programming
Declarative Programming
Reactive
RxSwift
Stream
Asynchronous
Terms
Functional Programming
Event Stream
Data Stream
Filter
Paradigm
Low memory
Optimized
Medium Memory High memory
Concurrency
Performance / Responsibility
Data : Program = 1:1
Reusable
Abstract Data
Low Memory Mass Production Concurrency
Functional
•데이터는�immutable�하게�취급하자�
•데이터�변경이�필요할�때는�새로�만들자�
•Side-Effect�을�없애기�위해서�Pure�Function�을�사용하자�
•Function�들의��Composition과�High-Order�Function으로�프로그램을�만들자�
•Data가�아닌�Process에�집중해서�프로그램을�만들자
Reactive
https://en.wikipedia.org/wiki/Reactive_programming
In computing, reactive programming is an asynchronous programming paradigm concerned with data streams
and the propagation of change.
Reactive
Reactive Libraries
Reactive Extension Java, JS, .NET, Scala, Swift, Python, … http://reactivex.io/
ReactiveCocoa Objective-C https://github.com/ReactiveCocoa/ReactiveCocoa
ReactiveSwift Swift https://github.com/ReactiveCocoa/ReactiveSwift
Sodium Java, JS, Swift, Kotlin, C, Rust https://github.com/SodiumFRP
ReactFX Java https://github.com/TomasMikula/ReactFX
Reactive-Banana Haskell http://wiki.haskell.org/Reactive-banana
Bacon.JS JS https://baconjs.github.io/
Kefir.JS JS https://rpominov.github.io/kefir/
Flapjax JS http://www.flapjax-lang.org/
Reactive
•Async�한�처리를�Functional�하게�처리하자�
•리턴값은�Stream인�Observable을�반환하자�
•Stream�에�흐르는�Data/Event�를�Operator�로�처리하자�
•Stream과�Stream을�연결하자�
•Data가�아닌�Process에�집중해서�프로그램을�만들자