Overview
This topic discusses the handling of
LambdaLists in
CLforJava.
CommonLisp supports a very sophisticated suite of function parameter options: required, optional, rest, key, and aux. Processing of all of these options must ultimately reduce to providing a fixed set of arguments to a Java method (most often
funcall methods). The strategy is to compile a lambda list to a Lisp function that the compiler uses to validate and manipulate the arguments according to the lambda list specification, and to reduce the argument list to a set of fixed arguments sent to the Java implementation. This and instance of this new function is stored in the implementing class of the original function whose lambda list was analyzed.
The
LambdaList? parser is entirely written in
CommonLisp, and more to the point, in
CLforJava. The next major step is to integrate this code into the existing compiler. This will immediately provide
CLforJava with the ability to handle the other
CommonLisp functions that require augmented lambda list processing. It opens the possibility of having the Spring2008 class write the sequence and list functions in Lisp. Not to mention
DefstructDesign.
References
| HyperSpec |
CLtL |
link 1 |
Link 2 |
Implementation
Details of implementation
Discussions
Links to Blog issues
Status:
Release Level:
Open bug count:
Test Suites
Links to JUnit results
--
JerryBoetje - 12 Jul 2003