If Prolog has clear distinction between strings, numbers, atoms, lists and compound structures how can it be called untyped. And how does it differ from dynamically typed languages like Lisp for example.
Which part of the definition of "dynamically typed language" does Prolog conflict with? And which part of the definition of "untyped language" does Lisp conflict with?
Any insight is appreciated.
Update
I already know what's the difference between dynamic, static, strong and weak typing. My question is about a special case which is Prolog. I just want to understand how is Prolog considered to be untyped though it doesn't seem to have a clear difference from dynamically typed languages.
Here's a reference that Prolog is untyped http://en.wikipedia.org/wiki/Prolog#Types