有人能指出我正确的方向吗?
答案 0 :(得分:29)
CLISP只是Common Lisp的一个实现。这是一个非常好的实现,它确实有一些支持嵌入其他(基于C)的程序,但这不是它的焦点,它是GPL,这可能是也可能不是你的交易破坏者。
您可能有兴趣查看ECL。此实现专门设计为嵌入式(实际上,“E”代表“可嵌入”!),并且具有许多可能对您有用的功能,包括将Common Lisp程序编译为C的能力(以及提供字节) - 代码编译和解释器)。
答案 1 :(得分:16)
除非你需要整个Lisp,否则你可能想要解决一个像Guile这样的Scheme实现,它将被合并到另一个程序中。
答案 2 :(得分:8)
尝试使用Embeddable Common Lisp(ECL)。
它的目标是嵌入,并且只获得您的脚本语言所需的Common Lisp链接部分。
答案 3 :(得分:6)
Lisp是嵌入式语言的不错选择。许多人认为Lisp很难,但语法相对较轻,特别是对于非程序员。基本上有前缀表示法,就是这样。优先规则总是明确的。函数名和变量名可以相同。您可以随意使用任何您喜欢的字符来获得有趣和无名字。
使用Lisp,您可以根据自己的喜好弯曲语法; 用户无需学习常见的lisp 。它易于扩展并提供更简单的工具,例如表达业务规则或从文件中提取数据。
我想我的观点是,Common Lisp的功能和复杂性使得能够为最终用户提供简单的,特定于域的构造。许多其他嵌入式语言将意味着那些用户学习该语言的复杂性。
答案 4 :(得分:5)
Chicken Scheme是嵌入的另一种选择。有关可嵌入API的详细信息,请参阅here。
答案 5 :(得分:3)
有几个简单的选择。
GUILE是GNU扩展语言。它是一个可嵌入的方案(LISP的方言)。 GPL(自然)。
TinyScheme是一个非常小的,非常简单的基于解释器的Scheme实现。它被恶意软件公司成功用于处理各种令人讨厌的事情。它以源代码形式提供,我不记得在什么许可证下。
答案 6 :(得分:1)
谷歌搜索:Common Lisp as an Extension language
但请记住,与Lua或Guile不同,Common Lisp并非从头开始设计为扩展语言。
一般建议:尝试使用一种真正使编写它们的工作变得更容易的扩展语言,并记住掌握Lisp以便你可以真正有效地使用它可能需要很长时间(并且周围没有很多人可以站在那么多parens xD)。
答案 7 :(得分:1)
因为它不是Lisp,所以Fuzuli有一个类似于Lisp的语法。很容易将它集成到C ++应用程序中。官方网站是http://www.fuzuliproject.org
另一个是http://www.newlisp.org/的newLISP,它也不是Lisp,而是非常接近Lisp。
答案 8 :(得分:-2)
Lisp是一个语言系列。
Common Lisp是 huge 的ANSI标准。认为C ++很大。不要将它用作脚本语言。
除非你的目标是相当硬核的程序员,否则Lisp作为一种脚本语言将会......呃......不能很好地服用。 可能。作为脚本语言,Lua可能是更好的选择。
也就是说,Lisp在实现脚本语言方面很好(技术上)。