函数响应式编程杂谈
2020-02-27 253浏览
- 1.ReactiveCocoa Rx
- 2.• Value/Data • Computation
- 3.CPU • • • • C
- 4.FP
- 5.(1 + 2) * 3 - 4 int complex(void) { int a = 1 + 2; int b = a * 3; int c = b - 4; return c; }
- 6.var result = subtract(multiply(add(1,2), 3), 4); var result = add(1,2).multiply(3).subtract(4); merge([1,2],[3,4]).sort().search(2) =
- 7.” • " • ” " • ” " • • " "
- 8.1. " print var print = function(i){ console.log(i);}; print forEach [1,2,3].forEach(print); "
- 9.2. “ " " " " " " expression " statement I/O ” ”
- 10.3. " " " side effect " " "
- 11.4. 3 ” ” state
- 12.function reverse(string) { if (string.length <= 1) { return string; } else { return reverse(string.substring(1, string.length)) + string.substring(0, 1); } }
- 13.5. Referential transparency " " " (1 + 2) === 3 "
- 14.FRP
- 15.Functional reactive programming (FRP) is a programming paradigm for reactive programming (asynchronous dataflow programming) using the building blocks of functional programming (e.g. map, reduce, filter). —Wikipedia What is (functional) reactive programming? -Stackoverflow Functional reactive programming -Wikipedia
- 16.Demo _infoLabel _nameTextField _passwordTextField _loginBtn _indicator
- 17._indicator • _infoLabel • _nameTextField • _passwordTextField _loginBtn • • • • _loginBtn _indicator _infoLabel
- 18.
- 19.Yes/No _nameTextField , _loginBtn ? Yes/No _passwordTextField _loginBtn _loginBtn ? API No Success? Yes ,
- 20.FRP
- 21.signal textField & loginBtn enabled rac_textSignal color map validUsernameSignal textField backgroundColor map valid text Yes / No validPasswordSignal combine End valid all text Yes / No map loginBtn enabled signinActiveSignal End reduce
- 22.username rac_textSignal NSString map BOOL map UIColor backgroundColor password rac_textSignal NSString map BOOL map UIColor backgroundColor
- 23.username rac_textSignal NSString map BOOL map UIColor backgroundColorcombineLatest:reduceBOOL subscribeNext _loginbtn signal password rac_textSignal NSString map BOOL map UIColor backgroundColor
- 24._loginBtn hidden valueChanged signal rac_signalForControlEvents doNext subscribeNext flattenMap subscribeNext _indicator & _loginBtn action End End
- 25.RACTuple rac_valuesAndChangesForKeyPath subscribeNext _loginbtn signal doNext UIButton rac_signalForControlEvents RACSignal map subscribeNext
- 26.Signal
- 27.FRP ReactiveCocoa RACSignal (value) ( ) (subscriber) (filter) (map) (combineLatest:reduce:)
- 28.
- 29.func fun(num:Int) -> Int { return num + 1 } Swift let f = fun(1) int fun(int num) { return num + 1; } int f = fun(1); C
- 30.typedef int (*funPointer)(int);//C funPointer = int (*)(int) func fun(num:'>num: