{"width":"100%","author_url":"https://blog.hatena.ne.jp/Naotsugu/","version":"1.0","height":"190","blog_url":"https://blog1.mammb.com/","title":"Groovy 1.8 \u306e\u30af\u30ed\u30fc\u30b8\u30e3\u5408\u6210","provider_url":"https://hatena.blog","author_name":"Naotsugu","url":"https://blog1.mammb.com/entry/20110213/1297552126","type":"rich","provider_name":"Hatena Blog","description":"Groovy 1.8 \u304b\u3089 closure composition \u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u3068\u3044\u3046\u304b\u307e\u3060Beta\u3067\u3059\u304c\u3002 closure composition \u306f > \u3092\u4f7f\u3044\u307e\u3059\u3002 def plus2 = { it + 2 } def times3 = { it * 3 } def composed1 = plus2 << times3 composed1 \u306f times3 \u306e\u95a2\u6570\u306e\u7d50\u679c\u3092 plus2 \u306b\u9069\u7528\u3059\u308b\u95a2\u6570\u3068\u306a\u308a\u307e\u3059\u3002composed1 \u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u7d50\u679c\u3068\u306a\u308a\u307e\u3059\u3002 composed1(3) // plus2(times3(3)) \u306a\u306e\u3067 11 composed1(4) // \u2026","image_url":null,"published":"2011-02-13 08:08:46","categories":["Groovy"],"blog_title":"A Memorandum","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fblog1.mammb.com%2Fentry%2F20110213%2F1297552126\" title=\"Groovy 1.8 \u306e\u30af\u30ed\u30fc\u30b8\u30e3\u5408\u6210 - A Memorandum\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>"}