PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mal ne Prolog frage


oliht
2002-11-24, 16:21:02
Hab mal eine Frage zu Prolog. Ich habe das Probleme das ich einen term der Form X=X+Y auswerten muss, wobei X schon einen wert hat. Das Problem ist Prolog vergleicht die linke mit der rechten Seiten und gibt dann ein no aus. Was ja auch logisch ist. Ich will aber X den Wert aus X+Y zuwiesen, weiß hier jemand wie man das in Prolog macht?

Stone2001
2002-11-24, 21:41:07
Schonmal es so probiert: x is x + y ?

Marcel
2002-11-24, 23:28:20
Originally posted by Stone2001
Schonmal es so probiert: x is x + y ?

Aufgrund meiner mehrtägigen Praxis als Prolog-Anfänger wage ich zu behaupten: Funzt nicht.
Weil: x ist schon an einen Wert gebunden, kann also keinen neuen annehmen.

Zumindestens nach dem, was mir erzählt wurde...

Gruß,
Marcel

edit: Allerdings ist "is" schonmal der richtige Weg, "=" macht nur Vergleiche.

Stone2001
2002-11-24, 23:32:55
Originally posted by Marcel
Aufgrund meiner mehrtägigen Praxis als Prolog-Anfänger wage ich zu behaupten: Funzt nicht.
Weil: x ist schon an einen Wert gebunden, kann also keinen neuen annehmen.

Zumindestens nach dem, was mir erzählt wurde...

Gruß,
Marcel

edit: Allerdings ist "is" schonmal der richtige Weg, "=" macht nur Vergleiche.
:D Ich glaube dann schlägt deine 'mehrtägige' Prolog-Erfahrung meine 5-Min Kenntnisse aus ein paar Englischen-Tutorials!
Hast du dann sonst nen Vorschlag wie es funktioniert? ???

Marcel
2002-11-25, 19:52:16
Originally posted by Stone2001

:D Ich glaube dann schlägt deine 'mehrtägige' Prolog-Erfahrung meine 5-Min Kenntnisse aus ein paar Englischen-Tutorials!
Hast du dann sonst nen Vorschlag wie es funktioniert? ???

Hm, ich würde mit assert und retract experimentieren. Assert habe ich schon praktisch einsetzen können, retract noch nicht getestet. Achtung: Wenn im Quelltext schon ein "blubb(zonk, honk)." steht, kannst Du zur Laufzeit kein "assert(blubb(zonk, honk))." mehr machen, nur "assert(blubbblubb(zonk, honk)).", da ein Prädikat entweder statisch oder dynamisch ist. Wenn ich das denn richtig verstanden habe.
Und empfehlen kann ich die Prolog-Umgebung von Amzi, die hat im kostenlosen 5MB-Download 'ne komplette Doku mit drin, inkl. Tuts.

Gruß,
Marcel

oliht
2002-11-26, 12:25:25
Danke für dei Tipps, hab es inzwischen selbst hinbekommen man kann das ganze rekursiv machen so dass man die Form X is X+Y ungehen kann... hatte da irgendwie ein blackout.