{"type":"rich","categories":["D\u8a00\u8a9e"],"author_url":"https://blog.hatena.ne.jp/kubo39/","height":"190","provider_name":"Hatena Blog","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fkubo39.hatenablog.com%2Fentry%2F2015%2F03%2F25%2F130929\" title=\"\u30d5\u30a3\u30dc\u30ca\u30c3\u30c1 - kubo39&#39;s blog\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_url":"https://kubo39.hatenablog.com/","image_url":null,"description":"import std.stdio : writeln; import std.conv : to; class Fib(T) if (__traits(isIntegral, T)) { T opIndex(T n) const pure nothrow @trusted @nogc in { assert(n > 0); } body { T y; { T x = 1; foreach (_; 0..n) (((x = n = x) += y) ? y : y) = n; } return y; } } version(unittest) {} else void main() { (new\u2026","published":"2015-03-25 13:09:29","provider_url":"https://hatena.blog","title":"\u30d5\u30a3\u30dc\u30ca\u30c3\u30c1","url":"https://kubo39.hatenablog.com/entry/2015/03/25/130929","width":"100%","version":"1.0","author_name":"kubo39","blog_title":"kubo39's blog"}