The definition of 'date' in arc.arc assumes a BSD-compatible 'date' binary on the host system. Unfortunately, the allowed arguments for GNU date are quite different. AFAICT, it is in fact impossible to convert the epoch-seconds timestamp format into a formatted date using the GNU version of the utility. Since the bundled web server uses the 'date' function to generate logfile names, any attempt to run a webapp on Linux immediately blows up.
I've hacked up a new implementation at the MzScheme layer using native date structs, but it would probably be worth porting a more complete date/time logic library to Arc, and relying on something like a native 'current-milliseconds' call only.
-----
1. I have a hard time parsing the following:
"In Arc, data structures can be used wherever functions are, and they behave as functions from indices to whatever's stored there. So to get the first element of a string you say:"
I think there's something wrong with the word 'from'.
2. When you say:
"There's also a more general loop operator that's similar to the C for operator and tends to be rarely used in practice, and a simple repeat operator for doing something n times:"
I assume that the operator is actually called 'loop'. Since there's no example and no font distinction it's note clear.
3. I like this a lot:
"[... _ ...] is an abbreviation for (fn (_) (... _ ...))."
4. This feels backwards to me: "(foo:bar x y) is equivalent to (foo (bar x y))". I was expecting (bar (foo x y)), but perhaps that's just my brain. foo:bar reads to me like do foo then do bar.
5. Why have rem when you have keep and ~?
6. What's the rationalie for the name 'obj' when creating hashes?
-----
1. It would be nice if you could change it to html instead of txt so footnotes (and possibly references to other sections, if you're really ambitious) can be links so it's easier to skip around (using 'open in new tab') without losing your place. It would also be useful for fixing jgrahamc's 2nd issue.
2. I'm having a bit of trouble getting the do / when section (my only prior experience with lisp is scanning some PCL way back when reddit was young - I use lisp-in-a-box as a calculator a lot when playing Eve Online, but that's not really useful experience here). If I'm understanding it correctly, it seems accurate to say that (if a b) is valid and will return b when a is true and do nothing otherwise. Is that right?
I think what I'm getting hung up on is that you talk about 'if' with 3 arguments, then with more than 3 arguments, then you explain 'do', and then when you combine them back together it looks like you're using 'if' with 2 arguments, with the 'do' part being, in it's entirety, the second argument...but otherwise you never address a plain old 'if' with 2 arguments.
-----
-----
-----
MzScheme v372 does not work...
Mac OS X 10.5.1 MzScheme v372
bin/mzscheme -m -f as.scm compile: bad syntax; function application is not allowed, because no #%app syntax transformer is bound in: (quote nil)
=== context === ac.scm:922:0: aload1
But as you say v352 does:
bin/mzscheme -m -f as.scm Use (quit) to quit, (tl) to return here after an interrupt. arc>
Now to play with it!
-----
-----
I look forward to exploring Arc further.
-----
( on a side note can you make the text in the box default by remove textarea { color:#000000; in news.css(line 10) or make the textarea have white background - its hard to read black text in default black textbox)
-----
Great work. Excited to try Arc out. :) Thanks.
-----
Finally, I can stop programming in Blub.
-----
-----