Linked by Thom Holwerda on Tue 29th Jan 2008 23:06 UTC, submitted by rayiner
Permalink for comment 298333
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
News
Linked by Thom Holwerda on 05/24/13 14:44 UTC
Linked by Thom Holwerda on 05/23/13 23:22 UTC
Linked by Thom Holwerda on 05/23/13 22:04 UTC
Linked by Thom Holwerda on 05/23/13 22:01 UTC
Linked by Thom Holwerda on 05/23/13 17:52 UTC
Linked by Thom Holwerda on 05/22/13 22:23 UTC
Linked by Thom Holwerda on 05/22/13 13:38 UTC
Linked by Thom Holwerda on 05/22/13 13:30 UTC, submitted by JRepin
Linked by Thom Holwerda on 05/21/13 22:06 UTC
Linked by Thom Holwerda on 05/21/13 21:45 UTC
More News »
Sponsored Links



Member since:
2005-07-06
I think a lot of people are underwhelmed by the description in the tutorial, because feature-wise there don't seem to be many changes. The compact block syntax is new, but using data structures as functions really isn't. In Common Lisp, you can use the meta-object protocol to define a method that should be called if your object is called as a function. From there you can implement lookup semantics or whatever you want really. Of course, the notation isn't as compact in Common Lisp because you have to use FUNCALL or APPLY to call an object as a function.
That said, I think the focus of Arc is in concision, and the benefits of that are going to be hard to show in a tutorial. The way the built-in features interact with each other can have a huge impact on the size and clarity of the code. Ironically enough, this is much the same problem Common Lisp has. It's hard to tell just by reading the Hyperspec how elegantly CL's standard library meshes with itself. Little things like the ordering of parameter names or little extra features added via keyword arguments can pay big dividends in real code.