This is a hint (Hinweis) text of GUPU taken literally from the system. It's probably not very interesting reading for you.
**NEXT:To continue the guided tour go back where You came from
**NEXT:Continue reading the hints in German (...)

Dieser Hinweis ist aus der Übung im WS 1994/95 oder aus einer noch älteren Übung oder war nie Teil einer Übung und ist daher möglicherweise für spätere Übungen nicht gültig!


    ,,Definition`` von Datenstrukturen

In Prolog sind die einzigen Datenstrukturen
Terme. Man muß Terme nicht eigens deklarieren
oder definieren, sondern verwendet sie einfach.
Wie z.B.

geboren_am(joseph_II, datum(1741,3,13)).
geboren_am(maria_theresia, datum(1717,5,13)).

(In typisierten Programmiersprachen hätte man
den ,,Datentyp`` Datum eigens definieren
müssen.)

Obwohl man also keine ausdrücklichen
Definitionen von Datenstrukturen benötigt, ist
es oft sehr nützlich (und wird z.B. bei den
geometrischen Objekten verlangt), sich eigene
Prädikate nur zur Dokumentation zu schreiben.

Prologs Terme verwendet man hier ähnlich
RECORDS, structures in proz. Sprachen.

z.B.

is_datum(datum(_Jahr, _Monat, _Tag)).

Sie könnten noch weitergehen und beschreiben,
was ein Jahr, ein Monat ein Tag ist, dies kann
man aber -- der Einfachheit halber
vernachlässigen. Z.B. ist folgende Definition
zwar nicht falsch, aber nicht unbed. gefragt.

is_datum(datum(Jahr, Monat, Tag)) :-
	natürliche_zahl(Jahr),
	natürliche_zahl(Monat),
	natürliche_zahl(Tag).

Bei den geometrischen Objekten wird man also
analog Prädikate definieren:

is_kreis/1 etc.

Bitte versuchen Sie bei dem Beispiel nicht
irgendwelche komplizierten arithmetischen
Prädikate zu verwenden, sondern versuchen Sie
nur mir einfachen Strukturen auszukommen.
Drücken Sie die gemeinsamen Dinge, oder gleiche
Dinge entsprechend nur mit Termen aus.

(Z.B. Quadrat ist eigentlich ein Rechteck, aber
nur mit zwei gleichen Seiten)

Zurück: \hinweis{init}

**NEXT:To continue the guided tour go back where You came from
**NEXT:Continue reading the hints in German