[{"data":1,"prerenderedAt":136},["ShallowReactive",2],{"project-2440732":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":34,"aspects":35,"strip":38,"post_text":29,"what":40,"said":56,"maker_in_thread":82,"shape":87,"grid":90,"attempts":98,"same_week":99,"maker_shows":32,"maker_hidden":129,"reader_version":130,"card":131},"2440732","objc-ycomb","A Y Combinator for Objective-C","title","Show HN: A Y Combinator for Objective-C","https:\u002F\u002Fgithub.com\u002Fjballanc\u002Fobjc-ycomb","github.com","jballanc",1302668141,2011,97,4,114,1097,11,"notable","languages","objective-c library","library",[24,25,26,27],"objective-c","y combinator","blocks","recursion","quiet",null,{"positive":31,"neutral":32,"mixed":33,"critical":33},2,1,0,3,{"idea":36,"docs":37},{"positive":33,"critical":33},{"positive":31,"critical":33},[34,33,39,39],5,{"problem":29,"audience":41,"pricing":29,"motivation":29,"time_to_build":29,"stack":49,"openness":54,"stage":55,"team_size":55},{"value":42,"source":43,"evidence":44},"Objective-C programmers","inferred",[45],{"id":46,"by":47,"text":48},"2441131","schrototo","That's cool, but it's actually possible to use recursive blocks directly if you simply declare the block as a __block variable. This works perfectly fine: ``` __block void…",[50],{"value":51,"source":43,"evidence":52},"Objective-C",[53],{"id":46,"by":47,"text":48},"open_source","unknown",{"praise":57,"objections":70,"requests":75,"questions":76,"alternatives":77},[58],{"value":59,"source":60,"evidence":61},"README is clear and entertaining, explains the interesting parts","commenter",[62,66],{"id":63,"by":64,"text":65},"2441259","lloeki","This has to be the most unboring README file I ever read. The fun.m and nofun.m have a nice touch too.",{"id":67,"by":68,"text":69},"2441543","rednum","I really appreciate the overview that author gave in readme. Quite often links to seemingly interesting github projects are submitted, but I am unable to figure out the 'really…",[71],{"value":72,"source":60,"evidence":73},"Recursive blocks can already be done directly with __block variables",[74],{"id":46,"by":47,"text":48},[],[],[78],{"value":79,"source":60,"evidence":80},"Recursive __block variable approach for blocks",[81],{"id":46,"by":47,"text":48},{"comments":32,"answered":33,"key":83},[84],{"id":85,"text":86},"2441899","Heh, I was wondering when someone would bring this up. For most cases, this also works. I will say that I've seen cases where this technique hasn't worked, but those were all…",{"commenters":15,"max_depth":31,"maker_replies":32,"first_comment_mins":88,"lifespan_hours":89},181,9,[91,93,95,97],[46,33,34,92,47,33],"project\u002Fneutral\u002Fidea",[85,33,33,94,11,32],"commenter\u002Fneutral\u002Fnone",[63,32,39,96,64,33],"project\u002Fpositive\u002Fdocs",[67,32,39,96,68,33],[],[100,105,110,115,120,124],{"id":101,"name":102,"points":103,"category":104},"2441888","SalaryShare",278,"web_saas",{"id":106,"name":107,"points":108,"category":109},"2420221","Patternify",74,"dev_tools",{"id":111,"name":112,"points":113,"category":114},"2443088","tech3some",39,"finance_crypto",{"id":116,"name":117,"points":118,"category":119},"2437248","ReVisualizer",35,"data",{"id":121,"name":122,"points":123,"category":104},"2418388","Babolog",33,{"id":125,"name":126,"points":127,"category":128},"2419247","Ingredient Pairings",25,"productivity",false,"v2",{"id":132,"name":5,"line":6,"ai":129,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":133,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":134,"url":9,"mix":135,"praise":59,"objection":72,"sub":21},2440732,[24,25,26,27],"3055",[31,32,33,33],1794036487730]