发布于 2009-10-03 10:12:52
和什么相比呢?Prolog实际上只是逻辑编程的卓越实现,所以如果您的问题真的是关于编程范例的比较,那么它确实非常广泛,您应该看上去像这里。
如果你的问题是关于prolog还是更常见的OO语言的话,我会说你真的是在把苹果比作橘子--“优势”(尽管是这样)只是思考世界的一种不同的方式,有时改变你问问题的方式是解决问题的更好的工具。
发布于 2009-10-03 10:15:51
基本上,如果您的程序可以轻松地描述为解密的形式逻辑语句,Prolog (或该家族中的另一种语言)将给出最快的开发时间。如果您使用一个好的Prolog编译器,它还将提供最好的性能和可靠性,因为引擎将进行大量的设计和开发工作。
试图在另一种语言中实现这类事情往往会变得一团糟。最干净和最通用的解决方案可能涉及实现您自己的统一引擎。即使是简单的实现也不是简单的,沃伦抽象机器有一两本关于它的书,做得更好至少需要进行一些研究,读一些令人头痛的论文。
当然,在现实世界中,您的程序的关键部分可能受益于Prolog,但是使用另一种语言更好地处理了许多其他东西。这就是为什么很多Prolog编译器可以与C.
发布于 2009-10-05 12:45:46
使用Prolog的最佳时机之一是您有一个适合用回溯解决的问题。这就是当您有很多可能的解决方案来解决一个问题,并且您可能希望命令它们包括/排除取决于某些上下文。这意味着很多模棱两可。如在自然语言处理中。
将所有可能的答案写成Prolog子句肯定要整洁得多。用一种祈使语言,我认为你真正能做的就是写一个巨大(非常巨大)的案例陈述,这一点也不太有趣。
https://stackoverflow.com/questions/1513373
复制相似问题