programming-languages - 为什么逻辑编程没有流行起来?

标签 programming-languages prolog logic-programming

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




8年前关闭。




随着时间的推移,函数式编程对其他编程语言的影响越来越大。我们开始在我的 AI 类(class)中使用 Prolog,似乎那里有一些东西可以使非 AI 领域的编程更容易。我的问题是:为什么逻辑编程没有以同样的方式流行起来?

在此 topic ,似乎达成了普遍共识,即逻辑编程是有用的,但必须如此证明。是否有理由认为它没有用?

更新 : 也许我应该更清楚一点。我并不是真的在问 Prolog。我可以理解为什么为大多数实际应用程序选择 Prolog 不是一个好主意。

为了举例说明我在说什么,请考虑 Python 中的 list comprehensions/map/filter。这些显然受到函数式语言的影响。为什么像 Python 这样的语言还没有从逻辑编程语言中学习这些东西,就像它们有函数式语言一样?

最佳答案

当您使用 Prolog 在计算机科学类(class)中学习逻辑编程时,重点不是让您成为一名熟练的 Prolog 程序员,而是让您敞开心扉接受您所使用的编程技术(数据结构/算法)的替代形式之前没有考虑过。

为了说明我的观点,当我开始学习计算机科学时,我的工程学院曾经要求所有学生用 Pascal 编写他们的软件程序,但自从我毕业以来,我从未使用过 Pascal。但是我通过选择正确的数据结构和算法学到的技能我仍然每天都在使用。

Pascal 并没有以我所知道的语言出现在我的简历中,但它在我作为软件工程师的培训中发挥了重要作用。它的有用性不能仅通过当前生产的 Pascal 代码行数来衡量。

当您开发软件时,您会意识到,即使您没有编写一行 Prolog 代码,您有时也会重用您在参加过的这些“无用”Prolog 或 AI 类(class)中可能首先学到的技术.

评估技术(特定的编程语言、特定的软件工具/应用程序)的有用性不仅仅是评估其实际使用水平的问题,而是评估其影响的问题。

如果你看看逻辑编程在专家系统、计算机游戏人工智能、空中交通管制以及可能相当多的其他领域(有人建议?)编程还没有流行起来……

关于programming-languages - 为什么逻辑编程没有流行起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/630007/

相关文章:

scala - 为什么 Scala 的库在 2.7 和 2.8 之间增加了一倍?

Prolog 中的 Lambda 表达式?

java - Java中有 'logic programming'的元素吗?

prolog - 在 Prolog 中交换列表的连续项

c# - 由于 "private"是 C# 中的默认范围 - 是否应该从签名中删除单词 "private"以获得更清晰的代码?

null - 假设的非空语言 - 如何实现链表?

prolog - SWI-Prolog - 断言失败

prolog - 如何阻止序言无限地检查不可能的解决方案?

c - Tail Call Optimization在DrScheme中是如何实现的?