TWiki> Compiler Web>TrashDevelopmentEnvironmentWebWebPreferences? >LambdaLists (2009-03-11, MadelineWilliams) EditAttach

LambdaLists

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

Core Java Classes Javadoc Links

Discussions

Links to Blog issues

Current Status of LambdaLists

Status:

Release Level:

Open bug count:

Test Suites

Links to JUnit results

-- JerryBoetje - 12 Jul 2003

Topic revision: r5 - 2009-03-11 - 20:26:23 - MadelineWilliams
 
Home
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback