Files
2012-02-21 01:15:00 -05:00

1 line
2.7 KiB
JSON

[{"user_id": 32737, "stars": [], "topic_id": 35233, "date_created": 1305340721.265789, "message": "So %%internal-fn is the fn gensym, %%internal-if is the if gensym, etc. Why is this better than hardcoding %%internal in the first place? Because you can now overwrite/shadow the %%internal variables and everything will continue to work fine.", "group_id": 9739, "id": 1049598}, {"user_id": 32737, "stars": [], "topic_id": 35233, "date_created": 1305340763.4677939, "message": "Why settle for obscure probably-won't-collide names, when you can use variables that are guaranteed not to collide? This way, we get the best of both worlds: easy to grab the gensyms from within Arc, yet there's no possibility for accidental collision.", "group_id": 9739, "id": 1049600}, {"user_id": 32737, "stars": [], "topic_id": 35233, "date_created": 1305340544.5817139, "message": "Earlier, I changed `fn` so it would be a macro that expands into a gensym, and then `ac` will look for the gensym, rather than the symbol `fn`. This lets you overwrite/shadow the variable `fn`, which is nice.", "group_id": 9739, "id": 1049587}, {"user_id": 32737, "stars": [], "topic_id": 35233, "date_created": 1305340612.7999649, "message": "You might be thinking, \"gosh I don't want to use gensyms... I'd rather use an obscure name like %%internal-fn or whatever, so Arc code can access it too\" Well, sorry, you're wrong.", "group_id": 9739, "id": 1049590}, {"user_id": 32737, "stars": [], "topic_id": 35233, "date_created": 1305340575.2296109, "message": "Well, I just went in and changed all the other special forms to do the same thing: assign, if, quasiquote, and quote. But wait, it gets better.", "group_id": 9739, "id": 1049588}, {"user_id": 32737, "stars": [], "topic_id": 35233, "date_created": 1305340658.0972509, "message": "There's two brilliant things about this system. First off, they're macros, so you can access the gensym by using macex: (car (macex '(if)))", "group_id": 9739, "id": 1049593}, {"user_id": 32737, "stars": [], "topic_id": 35233, "date_created": 1305340687.277494, "message": "Secondly, we can bind variables in the Arc namespace to the gensyms. In fact, that's precisely what I did. Now there are %%internal- variables in Arc, that are initially bound to the gensyms.", "group_id": 9739, "id": 1049594}, {"user_id": 32737, "stars": [], "topic_id": 35233, "date_created": 1305341193.972857, "message": "By the way, I'll note that hardcoding the %%internal names is a good idea if you *don't* want to allow Arc to assign to those variables... but that seems silly to me. Why restrict it arbitrarily?", "group_id": 9739, "id": 1049624}, {"user_id": 32737, "stars": [], "topic_id": 35233, "date_created": 1305341399.784565, "message": "This change is now on my fork.", "group_id": 9739, "id": 1049647}]