[{"data":1,"prerenderedAt":183},["ShallowReactive",2],{"project-10569618":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":28,"sentiment":29,"stance_mix":30,"scored_comments":33,"aspects":34,"strip":38,"post_text":40,"what":41,"said":59,"maker_in_thread":112,"shape":120,"grid":124,"attempts":146,"same_week":147,"maker_shows":128,"maker_hidden":175,"reader_version":176,"card":177},"10569618","cljs4excel","ClojureScript REPL within Excel","title","Show HN: ClojureScript REPL within Excel","https:\u002F\u002Fgithub.com\u002Fcfelde\u002Fcljs4excel","github.com","theocs",1447595957,2015,83,10,319,2565,13,"notable","dev_tools","repl for spreadsheets","desktop_app",[24,25,26,27],"clojurescript","excel","repl","vba alternative","curious",0.375,{"positive":31,"neutral":31,"mixed":32,"critical":32},3,0,6,{"idea":35,"design":37},{"positive":36,"critical":32},2,{"positive":32,"critical":32},[39,39,31,31,32,31,32,32,32,39],5,null,{"problem":40,"audience":40,"pricing":40,"motivation":40,"time_to_build":40,"stack":42,"openness":58,"stage":58,"team_size":58},[43,51],{"value":44,"source":45,"evidence":46},"ClojureScript","commenter",[47],{"id":48,"by":49,"text":50},"10569839","mfikes","This reminds me of one of the points pg makes in What Made Lisp Different [1], under #9: ``` \"compiling at runtime is the basis of Lisp's use as an extension language in programs…",{"value":52,"source":45,"evidence":53},"VBA",[54],{"id":55,"by":56,"text":57},"10570203","WBrentWilliams","I would hope that would be the ultimate goal. However, that might not be possible without at least some VBA work. Experimentation will have to be undertaken. The real question is…","unknown",{"praise":60,"objections":76,"requests":85,"questions":97,"alternatives":106},[61,69],{"value":62,"source":45,"evidence":63},"Cool demonstration of ClojureScript self-hosting in Excel",[64,65],{"id":48,"by":49,"text":50},{"id":66,"by":67,"text":68},"10571545","bauser","Very cool. Looks like a promising project",{"value":70,"source":45,"evidence":71},"Idea of ClojureScript replacing VBA macros is appealing",[72],{"id":73,"by":74,"text":75},"10570114","mraison","Awesome! Now I'm dreaming of a world where people would learn ClojureScript instead of writing VBA macros :)",[77],{"value":78,"source":45,"evidence":79},"Unclear whether arbitrary cell-to-function-to-cell pipelines are possible without VBA",[80,84],{"id":81,"by":82,"text":83},"10569963","ghufran_syed","I love the idea of this, but then started to wonder what this would let me do. Can I take data from an arbitrary set of input cells, pass them through a sequence of clojurescript…",{"id":55,"by":56,"text":57},[86,93],{"value":87,"source":45,"evidence":88},"Blocking variants of the async binding functions",[89],{"id":90,"by":91,"text":92},"10570941","moonchrome","why use continuation functions (... println) instead of returning values ? Is it because of the underlying JS API is async ? Maybe use something like chans to pipe async values ?…",{"value":94,"source":45,"evidence":95},"Idiomatic return values rather than callbacks",[96],{"id":90,"by":91,"text":92},[98,102],{"value":99,"source":45,"evidence":100},"Why callbacks instead of returned values",[101],{"id":90,"by":91,"text":92},{"value":103,"source":45,"evidence":104},"Can data from input cells be passed through ClojureScript functions and written back",[105],{"id":81,"by":82,"text":83},[107],{"value":108,"source":45,"evidence":109},"VBA macros",[110,111],{"id":73,"by":74,"text":75},{"id":55,"by":56,"text":57},{"comments":36,"answered":36,"key":113},[114,117],{"id":115,"text":116},"10570301","Glad you like it :) You can bind to arbitrary data regions using named items. For example: cljs.user=> (add-binding-named-item \"A1:B2\" \"binding-id\" println) nil {:rc 2, :cc 2,…",{"id":118,"text":119},"10571246","You're right about the underlying JS API being async, and that's why those functions are as well. I wouldn't mind adding a blocking variant of these functions, and use async…",{"commenters":121,"max_depth":39,"maker_replies":36,"first_comment_mins":122,"lifespan_hours":123},8,95,9,[125,127,129,131,132,134,136,140,142,144],[48,32,39,126,49,32],"project\u002Fpositive\u002Fidea",[73,128,39,126,74,32],1,[81,36,31,130,82,32],"project\u002Fneutral\u002Fidea",[55,36,31,130,56,32],[115,36,32,133,11,128],"maker\u002Fneutral\u002Fdocs",[90,36,31,135,91,32],"project\u002Fneutral\u002Fdesign",[137,36,32,138,139,32],"10571101","commenter\u002Fneutral\u002Fdesign","moomin",[141,36,32,138,91,32],"10571139",[118,36,32,143,11,128],"maker\u002Fneutral\u002Fdesign",[66,31,39,145,67,32],"project\u002Fpositive\u002Fnone",[],[148,152,157,162,166,170],{"id":149,"name":150,"points":151,"category":20},"10570666","Nixar",130,{"id":153,"name":154,"points":155,"category":156},"10581735","Twitch Paints",109,"creative",{"id":158,"name":159,"points":160,"category":161},"10588371","Interviews can be stressful",96,"web_saas",{"id":163,"name":164,"points":165,"category":20},"10574045","react-yearly-calendar",94,{"id":167,"name":168,"points":169,"category":20},"10571065","ied",86,{"id":171,"name":172,"points":173,"category":174},"10555692","TensorFlow",77,"infrastructure",false,"v2",{"id":178,"name":5,"line":6,"ai":175,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":179,"top":18,"kw":180,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":181,"url":9,"mix":182,"praise":62,"objection":78,"sub":21},10569618,0.38,[24,25,26,27],"5533030005",[31,31,32,32],1794036537684]