Welche Bedeutungen von "Typ" werden in der Norm verwendet?

In Teil 1 der ISO-Norm für Prolog, ISO / IEC 13211-1: 1995, wird der Begriff "Typ" verwendet, um sich auf verschiedene Dinge zu beziehen. Dies führt oft zu Verwirrung. Zum Beispiel eine Seite namens IsoErrata (archivierte Version, Quelle) Staaten (beachten Sie, dass diese Seite nicht mit ISO zusammenhängt):

7.12.2 und 8.1.2.1

Es gibt eine Verwirrung darüber, was ein "Typ" ist. Es scheint 3 verschiedene Gruppen zu geben:

Diejenigen, die in 8.1.2.1 aufgeführt sind und auch als ValidTypes in type_error-Begriffen in 7.12.2.b vorkommenDiejenigen, die in 8.1.2.1 aufgeführt sind und in domain_error als ValidDomain in 7.12.2.c vorkommenDiejenigen, die nur in 8.1.2.1 aufgeführt sind

Darüber hinaus gibt es in 7.12.2.c ValidDomains, die nicht in 8.1.2.1 aufgeführt sind, vermutlich aus Versehen (z. B. io_mode).

8.14.3.3.f

Die Vorlage erfordert den Typatom_or_atom_list für das 3. argument ist hier aber seltsamerweise der benötigte fehlertermtype_error(list,Operator). Dies führt zu (siehe Beispiele)

op(30,xfy,0) =====> error(type_error(list,0))

wotype_error(atom,0) odertype_error(atom_or_atom_list,0) wäre angemessener (aber beachten Sie, dassatom_or_atom_list gehört nicht zu den in 7.12.2 aufgelisteten ValidTypes!). Für ECLiPSe haben wir uns deshalb entschiedentype_error(list,Op) nur wennOp ist eine falsche Liste undtype_error(atom,Op) wennOp ist irgendein anderes Nichtatom.

Also, in welcher Bedeutung wird "Typ" verwendet, und was ist mit der obigen Verwirrung zu tun?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage