序言vs Lisp
Prolog和Lisp是当今最流行的人工智能(AI)计算机编程语言。它们是用两种不同的编程范式构建的。Prolog是一种声明性语言,而Lisp是一种函数式语言。这两种方法都适用于各种人工智能问题,但Prolog主要用于逻辑和推理问题,而Lisp则用于有快速原型需求的问题。
序言
Prolog是一种人工智能编程语言。它属于逻辑程序设计语言家族。Prolog是一种声明性语言,通过对定义为规则和事实的关系(表示程序逻辑)运行查询来完成计算。prolog开发于1970年,是最古老的逻辑编程语言之一,也是当今最流行的人工智能编程语言之一(与Lisp一起使用)。它是一种免费语言,但有许多商业变体可用。它最初用于自然语言处理,但现在被用于各种任务,如专家系统、自动答疑系统、游戏和高级控制系统。Prolog只有一种称为term的数据类型。项可以是原子、数、变量或复合项。数字可以是浮点或整数。Prolog支持列表和字符串作为项的集合。Prolog使用子句定义关系。从句可以是规则,也可以是事实。Prolog允许迭代遍历其递归谓词。
口齿不清
Lisp是一个计算机编程语言家族。现在用于通用编程的最著名的Lisp方言是Common Lisp和Scheme。LISP这个名字来源于“列表处理”,正如它暗示的那样,LISP的主要数据结构是链表。实际上,整个源代码都是使用列表(使用前缀表示法)编写的,或者更准确地说是用括号括起来的列表(称为s表达式)。例如,一个函数调用被写成(fa1a2a3),这意味着函数f是使用a1、a2和a3作为函数的输入参数来调用的。因此,它被称为面向表达式的语言,其中所有数据和代码都作为表达式编写(在Lisp中表达式和语句之间没有区别)。这个漂亮的特性对于Lisp来说是非常特殊的,在Lisp中,它可以通过编写有用的宏来将语言扩展到手头的问题。虽然尾部递归被程序员用来表示循环,但所有常见的Lisp方言都包含了像loop这样的控制结构。此外,常见的Lisp和scheme都有mapcar和map,它们是函数的示例,通过将函数依次应用于其所有元素,然后将结果收集到一个列表中,从而提供循环功能。
Prolog和Lisp有什么区别?