[{"data":1,"prerenderedAt":255},["ShallowReactive",2],{"project-11595200":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":33,"aspects":34,"strip":37,"post_text":41,"what":42,"said":61,"maker_in_thread":117,"shape":126,"grid":131,"attempts":216,"same_week":217,"maker_shows":197,"maker_hidden":247,"reader_version":248,"card":249},"11595200","wf-optimizer","Optimizing Higher Order Functions with Hypothetical Inverses","title","Show HN: Optimizing Higher Order Functions with Hypothetical Inverses","https:\u002F\u002Fmedium.com\u002F@pschanely\u002Foptimizing-higher-order-functions-with-hypothetical-inverses-e5153ab69753","medium.com","pschanely",1461932561,2016,55,35,680,2264,31,"notable","languages","compiler optimization","library",[24,25,21,26],"higher order functions","term rewriting","map reduce fusion","debated",-0.056,{"positive":30,"neutral":31,"mixed":32,"critical":30},2,4,0,8,{"idea":35,"docs":36},{"positive":30,"critical":30},{"positive":32,"critical":32},[32,32,32,38,32,32,32,32,32,39,32,32,39,32,39,32,32,32,32,32,32,32,32,32,32,32,32,40,40,32,32,39,32,32,38],5,3,1,null,{"problem":41,"audience":41,"pricing":41,"motivation":43,"time_to_build":41,"stack":50,"openness":58,"stage":59,"team_size":60},{"value":44,"source":45,"evidence":46},"Exploring optimizations of higher-order functions via hypothetical inverses","inferred",[47],{"id":48,"by":11,"text":49},"11611213","Referenced in the paper panic suggested below ( https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=11595273 ), and suggested to me directly by @mattcmd on twitter (…",[51],{"value":52,"source":53,"evidence":54},"Maude","maker",[55],{"id":56,"by":11,"text":57},"11597188","Totally; great point. My code is here: https:\u002F\u002Fgithub.com\u002Fpschanely\u002Fwf-optimizer\u002Fblob\u002Fmaster\u002Fdemo.maude Maude is a programming language based on rewriting:…","open_source","prototype","unknown",{"praise":62,"objections":72,"requests":91,"questions":98,"alternatives":106},[63],{"value":64,"source":65,"evidence":66},"Connects to abstract algebra and fold fusion theory","commenter",[67,71],{"id":68,"by":69,"text":70},"11598962","ericbb","This approach is strongly reminiscent of abstract algebra; for example, the Map-Reduce Transformation example seems to be(?) justified exactly when f is an isomorphism over r.…",{"id":48,"by":11,"text":49},[73,84],{"value":74,"source":65,"evidence":75},"Floating point makes sum reordering unsound",[76,80],{"id":77,"by":78,"text":79},"11600526","sivvy","The premise of the optimizations in this article don't always hold, unfortunately. If x is floating point, sum(reverse(x)) is unlikely to be equal to sum(x) for long enough x,…",{"id":81,"by":82,"text":83},"11597778","quickie69","Beat me to it wrt floating point! It's not a field.",{"value":85,"source":65,"evidence":86},"Show HN guidelines: nothing for users to try",[87],{"id":88,"by":89,"text":90},"11595517","brudgers","Interesting article. Not sure if it meets the of the \"Show HN\" guidelines -- there is nothing for users to try out or play with. If it is still withing the window, maybe change…",[92],{"value":93,"source":65,"evidence":94},"Clickable code link and more explanation of Maude",[95],{"id":96,"by":89,"text":97},"11596885","Or post a clickable link here in the thread? Explaining the code might be an opportunity to create a rough draft of something more polished. A bit of background on Maude might be…",[99],{"value":100,"source":65,"evidence":101},"How does this compare to stream fusion?",[102],{"id":103,"by":104,"text":105},"11595273","panic","How does this compare to stream fusion? http:\u002F\u002Fciteseer.ist.psu.edu\u002Fviewdoc\u002Fsummary?doi=10.1.1.104.7401",[107,111],{"value":108,"source":65,"evidence":109},"Stream fusion",[110],{"id":103,"by":104,"text":105},{"value":112,"source":53,"evidence":113},"CouchDB persisted reduce results",[114],{"id":115,"by":11,"text":116},"11598769","Thank you. And, heck yes, more people need to be talking about how to deal with computations that are largely repeated. That problem comes up all over the place. Couchdb had an…",{"comments":33,"answered":31,"key":118},[119,122,123],{"id":120,"text":121},"11599567","Yes! I think perhaps that f needs only to be a homomorphism instead of an isomorphism, but I don't trust myself enough to make such a claim definitively :) Always curious to…",{"id":115,"text":116},{"id":124,"text":125},"11599523","Unfortunately, I took barely enough grad school classes to be dangerous! It's worth clarifying that the lifting of f through r can change r (to, say r'), in which case, yes, f is…",{"commenters":127,"max_depth":128,"maker_replies":33,"first_comment_mins":129,"lifespan_hours":130},18,9,14,73,[132,134,136,138,142,143,147,150,153,155,156,158,159,162,164,166,170,173,175,177,179,182,185,187,189,192,194,196,199,201,203,206,208,209,212],[68,32,32,133,69,32],"commenter\u002Fneutral\u002Fidea",[120,32,32,135,11,40],"project\u002Fneutral\u002Fidea",[137,32,32,133,69,32],"11599989",[139,40,38,140,141,32],"11598514","project\u002Fpositive\u002Fidea","js8",[115,40,32,135,11,40],[144,40,32,145,146,32],"11600218","other\u002Fneutral\u002Fidea","btown",[148,40,32,145,149,32],"11600788","joefkelley",[151,30,32,133,152,32],"11599304","_lm_",[124,30,32,154,11,40],"maker\u002Fneutral\u002Fidea",[103,39,39,135,104,32],[157,39,32,135,11,40],"11595561",[48,31,32,135,11,40],[160,38,39,135,161,32],"11597142","kazinator",[163,38,32,135,11,40],"11597387",[165,38,39,135,161,32],"11598013",[167,38,32,168,169,32],"11598681","commenter\u002Fneutral\u002Fnone","rntz",[171,38,32,168,172,32],"11598961","AnimalMuppet",[174,38,32,168,161,32],"11599092",[176,38,32,168,172,32],"11599551",[178,38,32,168,161,32],"11599856",[180,38,32,168,181,32],"11600118","dllthomas",[183,38,32,168,184,32],"11600127","hawkice",[186,38,32,168,181,32],"11600272",[188,38,32,168,161,32],"11599073",[190,38,32,168,191,32],"11599120","prodigal_erik",[193,38,32,168,161,32],"11599299",[195,38,32,168,169,32],"11599369",[77,197,40,198,78,32],6,"project\u002Fcritical\u002Fidea",[81,200,40,198,82,32],7,[88,33,32,202,89,32],"other\u002Fneutral\u002Fnone",[204,33,32,205,11,40],"11595571","maker\u002Fneutral\u002Fnone",[96,33,39,207,89,32],"maker\u002Fneutral\u002Fdocs",[56,33,32,207,11,40],[210,33,32,202,211,32],"11597897","gmfawcett",[213,33,38,214,215,32],"11596940","maker\u002Fpositive\u002Fidea","dang",[],[218,223,228,233,237,242],{"id":219,"name":220,"points":221,"category":222},"11587468","Jam API",300,"dev_tools",{"id":224,"name":225,"points":226,"category":227},"11603604","Alloy",148,"productivity",{"id":229,"name":230,"points":231,"category":232},"11599714","TeachCraft",129,"learning_science",{"id":234,"name":235,"points":236,"category":20},"11618550","GAM",115,{"id":238,"name":239,"points":240,"category":241},"11610832","Panther",108,"consumer_social",{"id":243,"name":244,"points":245,"category":246},"11589340","TinyRave",68,"creative",false,"v2",{"id":250,"name":5,"line":6,"ai":247,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":251,"top":18,"kw":252,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":253,"url":9,"mix":254,"praise":64,"objection":74,"sub":21},11595200,-0.06,[24,25,21,26],"00050000030030300000000000011003005",[30,31,32,30],1793990942204]