(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
/** | |
* ================== angular-ios9-uiwebview.patch.js v1.1.1 ================== | |
* | |
* This patch works around iOS9 UIWebView regression that causes infinite digest | |
* errors in Angular. | |
* | |
* The patch can be applied to Angular 1.2.0 – 1.4.5. Newer versions of Angular | |
* have the workaround baked in. | |
* | |
* To apply this patch load/bundle this file with your application and add a |
const I = x => x | |
const K = x => y => x | |
const A = f => x => f (x) | |
const T = x => f => f (x) | |
const W = f => x => f (x) (x) | |
const C = f => y => x => f (x) (y) | |
const B = f => g => x => f (g (x)) | |
const S = f => g => x => f (x) (g (x)) | |
const S_ = f => g => x => f (g (x)) (x) | |
const S2 = f => g => h => x => f (g (x)) (h (x)) |
If you're using SystemJS in the browser, you'll want to update your System config to point at the bundles, if you're not already.
System.config({
//use typescript for simple compilation (no typechecking)
//transpiler: 'typescript',
//typescript compiler options
//typescriptOptions: {
//emitDecoratorMetadata: true
//},
// is Just(..) a monad? Well, it's a monad constructor. | |
// Its instances are certainly monads. | |
function Just(v) { | |
return { map, chain, ap }; | |
function map(fn) { | |
return Just(fn(v)); | |
} | |
function chain(fn) { | |
return fn(v); | |
} |
export type Either<E, A> = [E, null] | [null, A]; | |
type Fn<A, B> = (a: A) => B; | |
export const left = <E, A>(e: E): Either<E, A> => [e, null]; | |
export const right = <E, A>(a: A): Either<E, A> => [null, a]; | |
export const isLeft = <E, A>(e: Either<E, A>): e is [E, null] => e[1] === null; | |
export const isRight = <E, A>(e: Either<E, A>): e is [null, A] => e[0] === null; |