我知道这两种语言,但我不知道如何合并这些语言。
请举例说明一些工具。
答案 0 :(得分:3)
如果您对Common Lisp感兴趣,可能会有很多实现。我所知道的是Armed Bear Common Lisp,根据他们的user documentation,你可以混合主机代码(例如Java库和类)和CL代码。
Interpreter interpreter = Interpreter.createInstance();
interpreter.eval("(load \"my-lisp-code.lisp\")");
Symbol myFunctionSym =
defaultPackage.findAccessibleSymbol(
"MY-FUNCTION");
Function myFunction =
myFunctionSym.getSymbolFunction();
Cons list =
(Cons) myFunction.execute(
Fixnum.getInstance(64),
Fixnum.getInstance(64));
public class Main {
public int addTwoNumbers(int a, int b) {
return a + b;
}
}
(defun void-function (param)
(let* ((class (jclass "Main"))
(intclass (jclass "int"))
(method (jmethod class "addTwoNumbers" intclass intclass))
(result (jcall method param 2 4)))
(format t "in void-function, result of calling addTwoNumbers(2, 4): ~a~%" result)))
关于CL和Java集成的Lisp Wiki page也有其他解决方案。我特别希望披风。由于ABCL实现了在JVM上运行的CL,Cloak似乎在SBCL下实现了JVM。