{"id":1764,"date":"2024-10-26T12:52:33","date_gmt":"2024-10-26T10:52:33","guid":{"rendered":"https:\/\/intsight.com\/?p=1764"},"modified":"2024-10-26T12:52:33","modified_gmt":"2024-10-26T10:52:33","slug":"lambdas-sobre-operadores-binarios","status":"publish","type":"post","link":"https:\/\/intsight.com\/index.php\/2024\/10\/26\/lambdas-sobre-operadores-binarios\/","title":{"rendered":"Lambdas sobre operadores binarios"},"content":{"rendered":"<p><span style=\"font-variant: small-caps; font-size: 107%;\">Esta es una peque\u00f1a<\/span> mejora al lenguaje de Austra. Supongamos que queremos sumar los n\u00fameros del 1 al 100. Creamos una secuencia de enteros y le aplicamos el m\u00e9todo <code>reduce<\/code>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">\niseq(1, 100).reduce(0, (x, y) =&gt; x + y) \n<\/pre>\n<p>En realidad, nos bastar\u00eda llamar a <code>sum<\/code>, pero el ejemplo me interesa por el uso de la funci\u00f3n lambda.<\/p>\n<p>El caso es que ahora podemos escribirlo as\u00ed:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">\niseq(1, 100).reduce(0, int::+) \n<\/pre>\n<p>El truco es sencillo, y Java lo usa a manos llenas al manejar <em>streams<\/em>. De momento, s\u00f3lo he activado la equivalencia para operadores binarios, pero si encuentro m\u00e1s casos \u00fatiles, puedo ampliarla. Hay que tener presente que Austra ya permite declarar funciones con par\u00e1metros lambda arbitrarios. Que no haya un m\u00e9todo en la librer\u00eda que utilice determinado patr\u00f3n de funci\u00f3n, no quiere decir que el usuario no pueda usarlo por su cuenta.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esta es una peque\u00f1a mejora al lenguaje de Austra. Supongamos que queremos sumar los n\u00fameros del 1 al 100. Creamos una secuencia de enteros y le aplicamos el m\u00e9todo reduce: iseq(1, 100).reduce(0, (x, y) =&gt; x + y) En realidad, nos bastar\u00eda llamar a sum, pero el ejemplo me interesa por el uso de la [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1763,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[92],"tags":[65,91],"class_list":["post-1764","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-austra","tag-net","tag-lambda"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/intsight.com\/wp-content\/uploads\/2024\/10\/butterfly.png?fit=500%2C500&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/posts\/1764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/comments?post=1764"}],"version-history":[{"count":5,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/posts\/1764\/revisions"}],"predecessor-version":[{"id":1769,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/posts\/1764\/revisions\/1769"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/media\/1763"}],"wp:attachment":[{"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/media?parent=1764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/categories?post=1764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/tags?post=1764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}