我对Gambit Scheme的吸引力很感兴趣,尤其是其广泛的支持平台,以及在需要时将C代码正确放入您的计划源中的能力。也就是说,这是一个方案,与普通LISP相比,其“包括电池”更少。有些人喜欢从头开始编码很多东西(又名千斤顶剃须),但不是我!

这使我提出了我的两个问题,旨在同时使用Gambit和一些普通LISP的味道:

1)哪个有效地可以更好地访问库?方案的库少于普通LISP。但是,Gambit计划对C/C ++代码和库的访问更加顺畅,这些代码和库远远超过了Common Lisp的库。您认为,Gambit的FFI的平稳性是否超过其缺乏本地图书馆?

2)计划的对象系统(例如TinyClos,Meroon)与Common Lisp的关闭相比如何?如果您发现他们缺乏,您最想念什么功能?最后,首先,对象系统在LISP/方案中有多重要?我听说整个基于LISP的公司(例如ITA软件)完全放弃了关闭。在LISP/方案中,对象真的是可选的吗?我确实担心,如果Gambit没有良好的对象系统,我可能会想念它们(我的编程背景纯粹是面向对象的)。

感谢您帮助来自C ++/Python的有抱负的convert依

- 马特

PS:有1500多名代表的人,您能创建一个“ Gambit”标签? :) 谢谢乔纳斯!

有帮助吗?

解决方案

1)我没有使用GAMBIT方案,因此我无法真正分辨出C/C ++集成的平滑程度。但是我使用的所有常见的Lisps都具有功能齐全的C FFI:s。因此,C库的可用性是相同的。集成需要一些工作,但是我认为Gambit计划也是如此。毕竟,LISP和C是不同的语言。但是也许您有不同的经验,我想在这种情况下了解更多。

您可能对 QuickLisp, ,这是一个非常好的新普通LISP项目 - 它使安装大量优质库变得非常容易。

2)C ++和Python旨在将OOP和类用作封装和结构数据的典型手段。关闭根本没有这种野心。相反,它提供的通用功能可以专门用于某些类型的参数 - 不一定是类。从本质上讲,这可以使OOP,但在常见的LISP中,OOP是一个方便的功能,而不是完成工作的基本功能。

我认为,与C ++对象模型相比,COLL的设计更加精心设计和灵活-TinyClos在这方面应该没有什么不同。

其他提示

确定的方案整体上的库中的库中较少,但是任何给定的方案实施通常都基于该标准,以包括更多的“电池包括”功能类型。

例如,gambit使用 软件包系统将使您访问多个支持库。

其他计划的表现更好,可以访问更多(或更好)支持库。两个球拍(带有 行星)和鸡肉(与 )立即脑海。

也就是说,常见的LISP也很丰富,大量有趣且有用的库是一个简单的ASDF安装。

至于方案对象系统,我个人倾向于偏爱鸡肉计划,并偏爱 . 。就是说,Tinyclos绝对没有错。两者都可以很好地服务,也没有真正缺少任何东西。尽管最后一个陈述可能与我在编写方案时不倾向于依靠很多面向对象的主义的事实有更多的关系。当我想编写“协议”,然后有一种专门研究协议的方式时,这两个系统都倾向于浮出水面。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top