函数响应式编程杂谈

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: