Zugriff auf "Methoden" in Prolog

Plastikeimer

Mitglied
Hallo :)
Ich möchte in Prolog innerhalb einer Definition auf eine andere zugreifen.

Mein Problem veranschauliche ich an einem kleinen Beispiel-Code.
Hier läuft Prolog durch eine Liste durch und wenn es ein Element findet, zählt es den Zähler hoch:

count_element( [], Element, 0).
count_element( [Element|T], Element, Anzahl) :- count_element(T, Element, X), Anzahl is X + 1.
count_element( [H|T], Element, Anzahl) :- count_element(T, Element, Anzahl).

Jetzt nehme ich den gleichen Code und möchte anstatt den Zähler hochzuzählen, den Wert des Zählers über den Zugriff auf eine "Methode" zuweisen:


count_element( [], Element, 0).
count_element( [Element|T], Element, Anzahl) :- count_element(T, Element, X), Anzahl is X+bel(Element).
count_element( [H|T], Element, Anzahl) :- count_element(T, Element, Anzahl).

Hierbei wurde die 1 jetzt einfach durch ein "Methodenaufruf" ersetzt.
Ich habe verschiedene Formate ausprobiert, Klammerung, etc. oder ein Z definiert, welches den "Methodenaufruf" quasi verlagert.
Nichts hat funktioniert.

Bitte um Hilfe :D Daanke.
 
S

SlaterB

Gast
das muss doch so ähnlich werden, oder? ;)

count_element( [Element|T], Element, Anzahl) :- count_element(T, Element, X), bel(Element, Z), Anzahl is X+Z.

genau wie X durch den rekursiven Methodenaufruf gesetzt wird ist Z als quasi-Rückgabewert auch eine Art Parameter,
hast du dieses Grundkonzept eingehalten?
 

Ähnliche Java Themen


Oben