Jekejeke Prolog 1.1.1 (Objekt-Orientierung via ISO Modulen)

Jan Burse, erstellt 25. Jan 2016 Hallo Zusammen, Wir haben soeben eine neue Ausgabe von Jekejeke Prolog aufgeschaltet. Wir haben hauptsächlich erste eingebaute Prädikate für die Objektor-Orientierung bereitgestellt. - Verschmelzung Prädikate & Evaluables: Es gibt nun automatisch für primäre Prädikate eine Bridge sodass diese als Evaluables genutzt werden können, und umgekehrt automatisch einen Tunnel sodass diese als Prädikate genutzt werden können. Hier ein Bespiel einer Prädikat Definition: factorial(0, 1). factorial(N, X) :- N>0, M is N-1, factorial(M, Y), X is N*Y. Dank der automatischen Bridge kann das Prädikat so aufgerufen werden: ?- X is factorial(10). X = 3628800 Umgekehrt gibt es neu zum vordefinierten Evaluable cos/1 dank dem automatischen Tunneling sofort ein Prädikat: ?- cos(0, X). X = 1.0 Das Bridging und Tunneling funktioniert auch für automatisch geladene Java Klassen und für die Prädikate call/n. - Anonymer Import: Es gibt neue die Prädikate package/1, use_package/1 und use_file_extension/1 die die Tipp-Arbeit beim Einbezug von Modulen sparen. Einige use_package/1 und use_file_extension/1 sind fix vordefiniert wie z.B. foreign(java/lang), library(jekpro/frequent), .class und .p. - Late Binding & Klassen Beziehungen: Das neue Prädikat (::)/2 realisiert einen Pythonesken Aufruf entweder eines Referenz Datentyps oder eines Term Objekts. Der Aufruf kann sich entweder gegen automatisch geladene Java Klassen wie hier richten: ?- 'System':err(X), X::println(abc). /* output will go somewhere else */ oder gegen selber definierte Module. Dabei über nimmt die re-export Direktive die Aufgabe der Darstellung der direkten Vererbung. Nicht-statische Methoden können wiederum Pythonesk definiert werden: :- module(point, []). x(Self, X) :- arg(1, Self, X). Die Vererbung kann mittels der neuen Prädikate sys_subclass_of/2 und sys_instance_of/2 abgefragt werden. Dadurch dass die Objekt-Orientierung auf das ISO Modulesystem abstellt ist es schnell erlernbar und benötigt wenig zusätzlichen Code. Entsprechende Beispiele sind noch in Bearbeitung. Fröhliches Kodieren! Android Appstores: Google Play Herunterladen: Laufzeitbibliothek

Kommentare