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 Daanke.
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 Daanke.