[{"data":1,"prerenderedAt":373},["ShallowReactive",2],{"project-3290630":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":36,"aspects":37,"strip":43,"post_text":44,"what":45,"said":70,"maker_in_thread":160,"shape":172,"grid":177,"attempts":336,"same_week":337,"maker_shows":32,"maker_hidden":366,"reader_version":367,"card":368},"3290630","brid.js","a Lisp that uses JSON instead of S-expressions (in .js)","title","Show HN: a Lisp that uses JSON instead of S-expressions (in .js)","https:\u002F\u002Fgithub.com\u002Fjes5199\u002Fbrid.js","github.com","jes5199",1322580154,2011,69,70,181,1097,17,"notable","languages","lisp interpreter","library",[24,25,26,27,28],"lisp","json","javascript","s-expressions","interpreter","curious",-0.25,{"positive":32,"neutral":33,"mixed":34,"critical":35},1,6,0,5,12,{"design":38,"idea":40,"execution":42},{"positive":34,"critical":39},2,{"positive":32,"critical":41},3,{"positive":34,"critical":34},[32,41,34,34,34,34,41,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,41,32,41,34,41,41,32,34,32,34,34,34,34,34,41],null,{"problem":46,"audience":44,"pricing":44,"motivation":53,"time_to_build":44,"stack":57,"openness":67,"stage":68,"team_size":69},{"value":47,"source":48,"evidence":49},"Explores whether JSON can replace S-expressions as Lisp syntax.","maker",[50],{"id":51,"by":11,"text":52},"3291110","I didn't claim it was revolutionary, I just keep hearing LISP hackers say \"there's no reason to care about XML or JSON if you've got S-Expressions, which are so much cleaner\"…",{"value":54,"source":48,"evidence":55},"Thanksgiving-weekend hack testing the claim that S-expressions are cleaner than JSON.",[56],{"id":51,"by":11,"text":52},[58],{"value":59,"source":48,"evidence":60},"JavaScript",[61,63],{"id":62},"post",{"id":64,"by":65,"text":66},"3291091","ktusznio","What is the purpose of the \"quote\" parameter? The only place it is in the code is here: else if(x[0] == 'quote'){ return x[1]; So why not just skip that extra verbosity? What am…","open_source","prototype","solo",{"praise":71,"objections":84,"requests":111,"questions":134,"alternatives":143},[72],{"value":73,"source":74,"evidence":75},"JSON-based Lisp is an interesting experiment","commenter",[76,80],{"id":77,"by":78,"text":79},"3291407","apotheon","I think the \"any interesting feature\" in this case is the fact it uses JSON rather than s-expressions. This may not be a feature you think it needs, but it's interesting…",{"id":81,"by":82,"text":83},"3290950","arethuza","I really like Lisp (I was even paid to develop in it for 6 years) and these days I love JSON because of its Lisp-ish nature - but those expressions look damn ugly to me.",[85,93,104],{"value":86,"source":74,"evidence":87},"JSON syntax with quotes and commas is ugly",[88,89],{"id":81,"by":82,"text":83},{"id":90,"by":91,"text":92},"3291148","lisper","I vote for \"prove\". All those extra and unnecessary quotes and commas. Blech. And all that extra ugliness just so you can re-use the JS parser? IMHO there's no excuse for this.…",{"value":94,"source":74,"evidence":95},"Still uses S-expression structure, so syntax change is superficial",[96,100],{"id":97,"by":98,"text":99},"3292217","xyzzyz","It still uses S-expressions, albeit with different kind of parentheses and separators. The whole point of S-expressions is that syntax is irrelevant.",{"id":101,"by":102,"text":103},"3290789","tantalor","How is this different than S-expressions? It seems equivalent modulo syntax. \"They are typically represented in text by parenthesized, whitespace-separated sequences\" -…",{"value":105,"source":74,"evidence":106},"Uses JS parser, so parsing is not minimal",[107,110],{"id":108,"by":91,"text":109},"3291207","No, there's a lot of parsing happening. It's just that you're using (part of) the Javascript parser to do it.",{"id":90,"by":91,"text":92},[112,123,127],{"value":113,"source":74,"evidence":114},"Show more examples of object literals as hashmaps",[115,119],{"id":116,"by":117,"text":118},"3290968","oconnor0","Does it use more JSON data types than arrays? The only examples are ``` [\"map\", ....] ``` I don't see any `{ }`, etc.",{"id":120,"by":121,"text":122},"3291044","benatkin","There is only one other composite data type besides arrays: objects. I don't think these are being used for invoking functions, but I think it would be interesting to try.",{"value":124,"source":74,"evidence":125},"Explain purpose of the quote parameter",[126],{"id":64,"by":65,"text":66},{"value":128,"source":74,"evidence":129},"Support python-style keyword args",[130],{"id":131,"by":132,"text":133},"3291556","akkartik","You could lose the quotes around strings, but you'd still have the commas. Maybe start with lisp and just add {key: value key2: value2} syntax for tables? It'd be useful to get…",[135,139],{"value":136,"source":74,"evidence":137},"How is this different from S-expressions?",[138],{"id":101,"by":102,"text":103},{"value":140,"source":74,"evidence":141},"Why is the quote form needed?",[142],{"id":64,"by":65,"text":66},[144,156],{"value":145,"source":74,"evidence":146},"Common Lisp, Scheme, and Arc",[147,150,153],{"id":148,"by":132,"text":149},"3291938","Yes, that's basically what my repo does. It started out as an attempt to build 'arc using macros atop Common Lisp' like the original critics claimed could be done. I pretty much…",{"id":151,"by":98,"text":152},"3291086","I'm sorry, but I cannot get excited over Yet Another Implementation of McCarthy's LISP[1]. If your Lisp had _any_ interesting feature, e.g. call\u002Fcc, or object system, or nifty…",{"id":154,"by":132,"text":155},"3291425","Get thee to the arc forum, where the six of us will provide good entertainment: http:\u002F\u002Farclanguage.org\u002Fitem?id=15422",{"value":157,"source":74,"evidence":158},"Paul Graham's jmc.lisp McCarthy implementation",[159],{"id":151,"by":98,"text":152},{"comments":161,"answered":161,"key":162},4,[163,166,169],{"id":164,"text":165},"3291548","when I had a similar thought about hashmaps, I noticed that a hashmap is basically a function that takes one argument and returns a constant. And then I fell into a Turing tar…",{"id":167,"text":168},"3291499","``` (defun foo (a b c)) ``` could accept a map of variable names ``` (foo {a: 1, b: 2, c: 3}) ```",{"id":170,"text":171},"3291021","Yes, it supports object literals as hashmaps. I'll try to add some more examples, soon.",{"commenters":173,"max_depth":174,"maker_replies":161,"first_comment_mins":175,"lifespan_hours":176},31,9,33,28,[178,180,182,186,188,190,192,195,197,199,203,205,209,212,214,216,218,220,222,224,227,229,232,234,236,238,240,242,244,246,248,251,253,255,256,259,261,264,266,268,271,273,276,279,281,282,286,290,291,293,297,298,299,300,304,306,309,310,311,312,315,317,320,322,324,326,329,331,333,335],[81,34,32,179,82,34],"project\u002Fcritical\u002Fdesign",[131,34,41,181,132,34],"project\u002Fneutral\u002Fdesign",[183,34,34,184,185,34],"3291727","commenter\u002Fneutral\u002Fidea","anghyflawn",[187,34,34,184,132,34],"3291834",[189,34,34,184,82,34],"3291870",[148,34,34,191,132,34],"commenter\u002Fneutral\u002Fnone",[193,34,34,184,194,34],"3291964","sedachv",[196,34,34,184,132,34],"3292136",[198,34,34,184,82,34],"3291756",[200,34,34,201,202,34],"3291847","commenter\u002Fneutral\u002Fdesign","spacemanaki",[204,34,34,191,132,34],"3291851",[206,32,41,207,208,34],"3291065","project\u002Fneutral\u002Fidea","gruseom",[210,32,34,184,211,34],"3291118","cyrus_",[213,32,34,184,208,34],"3291232",[215,32,34,184,91,34],"3291201",[217,32,34,184,208,34],"3291267",[219,32,34,184,91,34],"3291391",[221,32,34,184,208,34],"3291424",[164,32,34,223,11,32],"maker\u002Fneutral\u002Fidea",[225,32,34,184,226,34],"3292570","munificent",[228,32,34,184,91,34],"3294235",[230,32,34,191,231,34],"3294331","vorg",[233,32,34,191,132,34],"3296301",[235,32,34,184,132,34],"3291376",[237,32,34,184,91,34],"3291422",[239,32,34,184,132,34],"3291462",[241,32,34,191,91,34],"3291686",[243,32,34,184,132,34],"3291826",[245,32,34,184,91,34],"3291862",[247,32,34,191,132,34],"3291926",[249,32,34,184,250,34],"3292601","ori_b",[252,32,34,184,132,34],"3291383",[254,32,34,184,132,34],"3291402",[167,32,34,201,11,32],[257,32,34,184,258,34],"3291606","baddox",[260,32,34,184,91,34],"3291740",[262,32,34,184,263,34],"3291873","wanorris",[265,32,34,184,250,34],"3292528",[267,32,34,191,263,34],"3292600",[269,32,34,201,270,34],"3291890","ekiru",[272,32,34,184,194,34],"3292647",[274,32,34,184,275,34],"3291290","premchai21",[277,32,34,184,278,34],"3291426","tikhonj",[280,32,34,184,275,34],"3291466",[101,39,41,207,102,34],[283,39,34,284,285,34],"3290899","other\u002Fneutral\u002Fnone","agumonkey",[287,41,32,288,289,34],"3291323","project\u002Fcritical\u002Fidea","fogus",[154,161,34,284,132,34],[64,35,41,292,65,34],"project\u002Fneutral\u002Fexecution",[294,35,34,295,296,34],"3291123","commenter\u002Fneutral\u002Fexecution","ohyes",[116,33,41,181,117,34],[170,33,34,292,11,32],[120,33,41,292,121,34],[301,302,34,191,303,34],"3291139",7,"sxephil",[151,305,32,288,98,34],8,[307,305,34,184,308,34],"3291109","yangyang",[108,305,34,191,91,34],[51,305,34,207,11,32],[90,305,32,179,91,34],[313,305,34,191,314,34],"3291204","raganwald",[316,305,34,191,314,34],"3291260",[318,305,34,191,319,34],"3291315","appamatto",[321,305,34,191,314,34],"3291341",[323,305,34,191,78,34],"3291399",[325,305,34,191,319,34],"3291578",[327,305,34,191,328,34],"3291518","barrybe",[330,305,34,284,314,34],"3291591",[332,305,34,284,132,34],"3291608",[77,305,35,334,78,34],"project\u002Fpositive\u002Fidea",[97,305,32,288,98,34],[],[338,343,348,353,358,362],{"id":339,"name":340,"points":341,"category":342},"3293324","SwitchCam",435,"creative",{"id":344,"name":345,"points":346,"category":347},"3290884","inPulse",139,"hardware",{"id":349,"name":350,"points":351,"category":352},"3291130","hastebin",131,"dev_tools",{"id":354,"name":355,"points":356,"category":357},"3286867","Dojo",119,"learning_science",{"id":359,"name":360,"points":361,"category":352},"3294687","Slowy app",104,{"id":363,"name":364,"points":365,"category":352},"3291861","BugCam",52,false,"v2",{"id":369,"name":5,"line":6,"ai":366,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":370,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":371,"url":9,"mix":372,"praise":73,"objection":86,"sub":21},3290630,[24,25,26,27,28],"1300003000000000000000000313033101000003",[32,33,34,35],1794036491685]