[{"data":1,"prerenderedAt":192},["ShallowReactive",2],{"project-4902219":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":29,"sentiment":30,"stance_mix":31,"scored_comments":34,"aspects":35,"strip":37,"post_text":39,"what":40,"said":54,"maker_in_thread":103,"shape":110,"grid":114,"attempts":156,"same_week":157,"maker_shows":121,"maker_hidden":184,"reader_version":185,"card":186},"4902219","strucjure","Clojure DSL for pattern-matching, parsing and generic programming","title","Show HN: Clojure DSL for pattern-matching, parsing and generic programming","http:\u002F\u002Fscattered-thoughts.net\u002Fblog\u002F2012\u002F12\u002F04\u002Fstrucjure-motivation\u002F","scattered-thoughts.net","jamii",1355181956,2012,204,16,74,1677,5,"notable","languages","pattern matching library","library",[24,25,26,27,28],"clojure","pattern matching","parsing","context free grammar","core.match","loved",0.246,{"positive":32,"neutral":18,"mixed":33,"critical":33},4,0,9,{"idea":36},{"positive":32,"critical":33},[33,33,33,18,38,33,18,18,38,33,38,33,18,33,38,38],3,null,{"problem":39,"audience":39,"pricing":39,"motivation":39,"time_to_build":39,"stack":41,"openness":53,"stage":53,"team_size":53},[42],{"value":43,"source":44,"evidence":45},"Clojure","maker",[46,50],{"id":47,"by":48,"text":49},"4902402","codewright","How does this compare to https:\u002F\u002Fgithub.com\u002Fclojure\u002Fcore.match ? He mentions that core.match is better at efficiently compiling complicated patterns, but little else is said as…",{"id":51,"by":11,"text":52},"4902555","Author here. Strucjure has much more expressive power. Strucjure views are first-class values and can call other views (or recursively call themselves). This allows them to…","unknown",{"praise":55,"objections":60,"requests":65,"questions":74,"alternatives":86},[56],{"value":57,"source":44,"evidence":58},"Views are first-class and can recognise context free grammars, beyond core.match",[59],{"id":51,"by":11,"text":52},[61],{"value":62,"source":44,"evidence":63},"Slower than core.match at present",[64],{"id":51,"by":11,"text":52},[66],{"value":67,"source":68,"evidence":69},"Support for reversible patterns","commenter",[70],{"id":71,"by":72,"text":73},"4902586","bbq","Awesome, great work. I'll have to play around with this later and dig into the source. I'm looking forward to that - I'm just beginning to dive into this area. What are your…",[75,79],{"value":76,"source":68,"evidence":77},"How does it compare to core.match?",[78],{"id":47,"by":48,"text":49},{"value":80,"source":68,"evidence":81},"Could it be used to write a computer algebra system?",[82],{"id":83,"by":84,"text":85},"4903483","papaf","There is an example which turns infix math expressions into sexps. Could Strucjure be used to write a Computer Algebraic System (CAS)? I would guess that most algebra is probably…",[87,90,97],{"value":28,"source":68,"evidence":88},[89],{"id":47,"by":48,"text":49},{"value":91,"source":68,"evidence":92},"Bondi",[93],{"id":94,"by":95,"text":96},"4903324","juliangamble","This has some similarities to Bondi http:\u002F\u002Fbondi.it.uts.edu.au\u002F by Barry Jay (but implemented in Clojure rather than being a Binary.) I'm interested to hear your thoughts on…",{"value":98,"source":44,"evidence":99},"OMeta",[100],{"id":101,"by":11,"text":102},"4904988","I'm vaguely aware of Bondi but I haven't gotten around to trying it out. It definitely influenced me when deciding to make patterns first class instead of sticking to OMeta's OOP…",{"comments":18,"answered":38,"key":104},[105,108,109],{"id":106,"text":107},"4902558","This comment makes me far happier than the extra vote :D",{"id":51,"text":52},{"id":101,"text":102},{"commenters":111,"max_depth":38,"maker_replies":18,"first_comment_mins":112,"lifespan_hours":113},11,28,42,[115,119,122,125,128,130,132,136,139,141,143,146,149,150,152,153],[116,33,33,117,118,33],"4902334","other\u002Fneutral\u002Fnone","shaunxcode",[106,33,33,120,11,121],"maker\u002Fpositive\u002Fnone",1,[123,33,33,117,124,33],"4902706","jrajav",[126,33,18,127,48,33],"4906682","maker\u002Fpositive\u002Fidea",[47,121,38,129,48,33],"project\u002Fneutral\u002Fidea",[51,121,33,131,11,121],"project\u002Fpositive\u002Fperformance",[133,121,18,134,135,33],"4903239","project\u002Fpositive\u002Fidea","swannodette",[137,121,18,134,138,33],"4911462","snikeris",[94,140,38,129,95,33],2,[101,140,33,142,11,121],"maker\u002Fneutral\u002Fidea",[144,38,38,129,145,33],"4902454","andrewcooke",[147,38,33,148,11,121],"4902560","maker\u002Fneutral\u002Fnone",[71,32,18,134,72,33],[151,32,33,129,11,121],"4903019",[83,18,38,129,84,33],[154,18,38,129,155,33],"4905599","omaranto",[],[158,162,166,170,174,179],{"id":159,"name":160,"points":161,"category":20},"4912076","Analytics.js",326,{"id":163,"name":164,"points":165,"category":20},"4903716","box2d-jquery",167,{"id":167,"name":168,"points":169,"category":20},"4906098","numbers.js",123,{"id":171,"name":172,"points":173,"category":20},"4885689","UXArchive",116,{"id":175,"name":176,"points":177,"category":178},"4909784","Designing Web Applications",105,"learning_science",{"id":180,"name":181,"points":182,"category":183},"4910899","Crowdtilt API",90,"web_saas",false,"v2",{"id":187,"name":5,"line":6,"ai":184,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":188,"top":18,"kw":189,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":190,"url":9,"mix":191,"praise":57,"objection":62,"sub":21},4902219,0.25,[24,25,26,27,28],"0005305530305033",[32,18,33,33],1793990888635]