What's wrong with Common Lisp's keyword arguments? I'm not being snarky, just asking. I'd say CL works at least as well as Python in this respect.
How does Python handle mixing order of specifying keyword args positionally and with a keyword?
>>> def foo(a=0, b=1, c=2): return [a, b, c];
...
>>> foo(34)
[34, 1, 2]
>>> foo(b=34)
[0, 34, 2]
>>> foo(b=34, 35)
File "<stdin>", line 1
SyntaxError: non-keyword arg after keyword arg
I chose instead to simply bind args by position after keyword args have been taken: wart> (foo :b 34 35)
(35 34 2)Or perhaps using some CLOS magic do to do this behind the scenes, e.g. no-applicable-method
http://www.lispworks.com/documentation/HyperSpec/Body/f_no_a...
[NB It's been a long time since I did much Lisp]
I wasn't aware of no-applicable-method; thanks for that pointer.