Don't be disheartened, brother. It seems to me Mr. Graham gave us all a first cut to get exactly this kind of feedback, but the core language isn't yet fully baked, and so we should acknowledge that we're at the very beginning of a long journey. I'd be surprised if Linus Torvalds was merging in kernel patches from anyone besides himself in 1992.
If we're throwing out random nitpicks, then I would vote for "number?" as the test function name, with "number" or "num" being the coercing function. I think the SICP style of appending a question mark at the end of boolean functions makes for very readable code, and keeps with the Arc design goal of brevity. I do not like "anum" or "anumber", because I think "a____" should in general be reserved for anaphoric macros, for consistency's sake.
I'm coming to Lisp from over ten years of Blub programming - C++, Java and C#. For what it's worth, I think templating languages are an evolutionary dead-end. Templating languages are seductive, because you see all this static HTML, so you think the right way to go is to serve up a template where you drop in the dynamic bits. But then you have to add another dynamic element, and another dynamic element, and pretty soon you have this awful mess that you can't easily modify or debug.
Enormously helpful. Thank you. Coming from Blub world, it's been hard for me to think functionally - making a distinction between returning values and side effects.
I don't understand your first point however, as this is a perfectly valid macro:
Nitpick. This is not a good definition (valid, but not good). The problem is something like this:
(double (prn 3))
Try the above in your repl after entering the mac definition; then consider what must be done in order to protect the x. For example, you might notice that the macros in arc.arc have a lot of (w/uniq (...) `(let ...)) forms, even the arguably simpler ones.
Actually, forget everything I said - I agree with your first sentence. I had originally thought there might be an elegant way to ditch formal parameter lists when there aren't optional or rest parameters. But the cost seems too high for the value added.
I'm sorry you're having troubles. Can you elaborate on your environment? I'm a Lisp and Linux know-nothing, and I was able to get the sample blog app (blog.arc) up and running on Slicehost without much difficulty (install mzscheme 360, install open-ssl, fire up mzscheme as root so that I could bind to port 80, ready for rolling around in happy Arc-y land).
Perhaps then the community can still forge ahead with a Git repository to share ideas and bug fixes and suggestions for improvements, which you can feel free to incorporate or ignore, and then the community should just baseline their Git repositories off of the arc<(max n)>.tar?
Yes, exactly. The Git repository is terrific resource as a place to conveniently store everyone's patches, but of course some patches may be "bad" (by one criteria or another), and that is OK (good even) for its purpose.
I'm running Linux, and so date was broken and thus so was the web server, I looked in the repository and was happy to see someone had a fix, and I didn't even have to read the date man page (lazy me!)
So, just like you say, Paul's canonical releases of arcn.tar and a community repository (for good patches, bad patches, experimental patches, weird patches...) are both useful.
"... I'm running Linux, and so date was broken and thus so was the web server, I looked in the repository and was happy to see someone had a fix, and I didn't even have to read the date man page ..."
Yes. When projectileboy said "the Git repo that's been created", I assumed he meant the one you just linked to (I don't know of any other), which is where I found the date fix.
No, no... This is helpful; thanks. I don't have any particular love for TextMate - it just seemed the quickest way to point B. (Actually, as a long time Blub programmer, my favorite text editor is IntelliJ. Go ahead and laugh... it's nicer than you think.)
No problem. This was a first attempt with almost no effort (just 5 px). Take it as an interim solution until pg comes out with his handpainted masterpiece ;-)