我一直想在一些C++代码中嵌入Lisp。我感兴趣的两个选项是Bigloo方案和ECL(Common Lisp)。通过阅读这些文档,它们似乎支持一个非常相似的功能集。显然,Bigloo是Scheme,ECL是CLisp,但它们还有什么区别?
特别是我对以下标准感兴趣:
- 易于嵌入(针对C++,而不仅仅是C)。我不想写一堆样板
- 性能。Bigloo是基于性能的,有许多编译器优化选项,尽管我找不到任何与ECL类似的选项
- 编码风格。这个更适合Bigloo——它比ECL更有功能吗
我把这个问题针对的是同时使用了这两种方法的人。
易于嵌入:对于C++应该差不多。Bigloo在Java和C#嵌入IIRC方面有一个更好的故事。
性能:真的取决于你要用它做什么。就Lisps而言,他们都是"不错"的表演者。嵌入到C中的能力减少了进行大量优化的机会。
编码风格:这确实是两者之间的最大区别,也是为什么一条评论说这相当于"我应该学习Scheme还是Common Lisp"。这两个标准都是两个非常不同的标准(R5RS和ANSI Common Lisp)的成熟可嵌入实现。