Prolog是一种无类型的语言吗?Prolog和动态类型语言有什么区别?

is7*_*s7s 10 lisp types programming-languages prolog dynamic-typing

如果Prolog在字符串,数字,原子,列表和复合结构之间有明确的区别,那么它如何被称为无类型.它与动态类型语言(如Lisp)有何不同.

Prolog与"动态类型语言"定义的哪一部分相冲突?Lisp与"无类型语言"的定义中哪一部分冲突?

任何见解都表示赞赏.

更新

我已经知道动态,静态,强弱打字之间的区别.我的问题是关于Prolog的一个特例.我只想了解Prolog如何被认为是无类型的,尽管它似乎与动态类型语言没有明显区别.

这是Prolog无类型参考 http://en.wikipedia.org/wiki/Prolog#Types

Nic*_*ain 5

Prolog主要是无类型的,因为你可以将任何类型的术语传递给任何谓词,通常情况下,最坏的情况是谓词不会成功.但是,算术谓词,例如is=:=期望数字参数可能会爆炸 - 所以那里有类型的概念.

非纯谓词也可能期望"文件句柄"类型的对象,否则会爆炸.

所以,调用Prolog"无类型"并不严格.