因为我想使用Lisp的语法和Python的库。
也许像Parenscript这样的工具会生成Python代码而不是Javascript。
答案 0 :(得分:8)
我一直在尝试使用Lisp compiler targeting Python bytecode。
您可以看到small video here。
它只是一个概念验证玩具,但它是IMO的可行路径,最终结果可以自由地调用和调用python(并且它将与任何python扩展库兼容)。所有这些都保持了宏的强大功能(元编程可能是Python离lisp最远的区域)。
相反,定位Python源代码非常烦人,因为有明确的语法限制使得编译Lisp变得困难(例如,赋值不是表达式,lambda中不允许使用语句,捕获的变量在Python 2中是只读的。 x)的
然而,VM运行时没有这些限制,Python字节码相当不错。
我的玩具目前可以定位Python 2.x,Python 3.x,甚至可以使用PyPy(所以你也可以使用JIT编译器)。
当然,从技术角度来看,成为完全兼容的Common Lisp实现将是IMO的无意义,但基于Python运行时类型并与Python对象系统兼容的lisp方言可能是实际应用程序的合理工具。
答案 1 :(得分:3)
我相信Hy正是您所寻找的。从教程:
Hy转换为python自己的抽象语法树,所以你很快就会开始 发现python的所有熟悉的力量都在你的指尖。
但是请注意Hy不是Common Lisp,所以你不能剪切和粘贴。