376
Vývoj / Re:CPS a bind
« kdy: 28. 04. 2017, 14:05:45 »Ahoj, učím se FP, abych byl aspoň schopen porozumět článkům o funkcionálním přístupu, a celkem chápu třeba Maybe. Teď jsem se dočetl, že kontinuace je také monáda, ale zaboha nejsem schopen napsat pro ni bind, tedy když mám hodnotu typu (A->R)->R, abych ji mohl dát do funkce beroucí na vstupu hodnotu typu A. Jde mi o vyjádření v nějakém ne čistě funkc. jazyce.
Tak například ve Swiftu to je easy-peasy:
Kód: [Vybrat]
func contUnit<T>(_ x:T) -> ((T)->Any)->Any {
return { $0(x) }
}
func contBind<T1,T2>(_ m:@escaping ((T1)->Any)->Any, _ f1:@escaping (T1)->((T2)->Any)->Any) -> ((T2)->Any)->Any {
return { f2 in m{ f1($0)(f2) }}
}