Why does ASDF use the
(operate operation-name arguments ...)
convention instead of the more usual function call
(function-name arguments ...)
Even with `operate', eventually a function will be called.
Also that one can define top level functions that call operate (defun foo (...) (operate 'foo-operation ...))
What does the extra layer of operate allow that generic functions and methods do not?
Thank you,
Mirko
On Fri, Jul 4, 2014 at 5:26 PM, Mirko Vukovic mirko.vukovic@gmail.com wrote:
Why does ASDF use the
(operate operation-name arguments ...)
convention instead of the more usual function call
(function-name arguments ...)
Even with `operate', eventually a function will be called.
Also that one can define top level functions that call operate (defun foo (...) (operate 'foo-operation ...))
What does the extra layer of operate allow that generic functions and methods do not?
Shared behavior via multiple inheritance (in CLOS, after Flavors, we call that mixins; in other languages, that's called traits) and extensibility by defining a single method (see e.g. how poiu does it).
In addition to the code, I invite you to read the long version of my recent ASDF article, with the source code at your side: https://github.com/fare/asdf3-2013/
PS: Andreas Fuchs told me that POIU is now TV-famous! http://moviecode.tumblr.com/post/88826139010/in-real-humans-akta-manniskor-s...
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org I don't know if might makes right, but lack of might sure makes lack of right.