No, actually, I didn't. I chose the simplest stateful web app I could think of: take input on one page and print it back on the next. What about that problem is specific to Arc?
Not specific, of course you can do it without much trouble in language/framework. It's easy to do in Arc, and with web programming with continuations in general. You want an example that is representative of things you'd like to do in practice. This example isn't. I'm not saying you did that deliberately. You have been programming websites in this continuation style for a long time, so it's understandable that you'd choose an example that's simple with continuations if you try to choose a simple example instead of a representative example. Most web programming is (1) display a list of things (2) display a detail view for something in the list (3) provide a form to add something to the list. The code for such an example provides much more information about how good a language/framework is for real world programming.
By the way, why did you choose to use string names for the data in the input form? Why not use variables directly and make aform work more like let (and like Mathematica's manipulate):
(form
(name (input-string))
(age (input-number))
(pr "Hello, " name ". You are " age " years old."))
Where input-X writes HTML output and returns a function that extracts the value of the field from the HTTP request. Validation works well too.
Comments
> I didn't go back and add stuff to the Arc libraries to make the answer to the challenge shorter
Yes, instead of creating a new library for the challenge you created the challenge to suit the library.
No, actually, I didn't. I chose the simplest stateful web app I could think of: take input on one page and print it back on the next. What about that problem is specific to Arc?
Not specific, of course you can do it without much trouble in language/framework. It's easy to do in Arc, and with web programming with continuations in general. You want an example that is representative of things you'd like to do in practice. This example isn't. I'm not saying you did that deliberately. You have been programming websites in this continuation style for a long time, so it's understandable that you'd choose an example that's simple with continuations if you try to choose a simple example instead of a representative example. Most web programming is (1) display a list of things (2) display a detail view for something in the list (3) provide a form to add something to the list. The code for such an example provides much more information about how good a language/framework is for real world programming.
By the way, why did you choose to use string names for the data in the input form? Why not use variables directly and make aform work more like let (and like Mathematica's manipulate):
Where input-X writes HTML output and returns a function that extracts the value of the field from the HTTP request. Validation works well too.