{"blog_url":"https://falsandtru.hatenablog.com/","published":"2015-12-24 00:00:00","width":"100%","height":"190","author_url":"https://blog.hatena.ne.jp/falsandtru/","type":"rich","author_name":"falsandtru","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Ffalsandtru.hatenablog.com%2Fentry%2Fjavascript-either-maybe-monad\" title=\"JavaScript(TypeScript)\u3067Either\u30e2\u30ca\u30c9\u3068Maybe\u30e2\u30ca\u30c9\u3092\u4f5c\u308b - falsandtru\u306e\u30e1\u30e2\u5e33\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_title":"falsandtru\u306e\u30e1\u30e2\u5e33","provider_name":"Hatena Blog","categories":["TypeScript"],"title":"JavaScript(TypeScript)\u3067Either\u30e2\u30ca\u30c9\u3068Maybe\u30e2\u30ca\u30c9\u3092\u4f5c\u308b","version":"1.0","image_url":null,"provider_url":"https://hatena.blog","url":"https://falsandtru.hatenablog.com/entry/javascript-either-maybe-monad","description":"JavaScript\u3067Maybe\u30e2\u30ca\u30c9\u306e\u30b5\u30f3\u30d7\u30eb\u306f\u3088\u304f\u3042\u308a\u307e\u3059\u304cEither\u30e2\u30ca\u30c9\u306e\u30b5\u30f3\u30d7\u30eb\u306f\u3042\u307e\u308a\u306a\u3044\u306e\u3067\u3053\u308c\u3092\u4f5c\u3063\u3066\u307f\u307e\u3059\u3002 \u3053\u306e\u8a18\u4e8b\u306fTypeScript \u30a2\u30c9\u30d9\u30f3\u30c8\u30ab\u30ec\u30f3\u30c0\u30fc2015 24\u65e5\u76ee\u306e\u8a18\u4e8b\u3067\u3059\u3002 \u307e\u305a\u306fMaybe\u30e2\u30ca\u30c9\u3067\u80a9\u6163\u3089\u3057\u3067\u3059\u3002 export class Maybe<T> { private MAYBE: [T, void]; constructor(private thunk_?: () => Maybe<T>) { } public bind(f: (val: T) => Maybe<T>): Maybe<T> public bind<U>(f: (val: T) \u2026"}