Prolog Änfänger braucht Hilfe..

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Prolog Änfänger braucht Hilfe..

    Hi

    Ich muss für die Uni Prolog lernen, peil aber überhaupt nichts.. habe schon mehrere einfürung gelesen etc, aber irgendwie will der funke nicht überspringen..

    ich habe nun folgendes problem, ich soll ein rekursiv definiertes prädikat schreiben summe/3, für dass gilt, dass Z die summe aller zahlen von X bis Y ist. ( einschliesslich X und Y )

    naja mein programm sieht so aus

    summe(X,Y,Z) :-
    X<Y+1,
    N is X+1,
    summe(N,Y,M),
    Z is M + N,

    aber es geht nicht... wo ist der fehler ? bin schon echt am verzweifeln ;(
  • Syntaktisch fehlt schon einmal der Punkt am Ende. Du hast dort ein Komma.
    Semantisch ist deine Terminationsbedingung falsch.
    "summe" wird solange aufgerufen bis die Bedingung X<Y+1 das Ergebnis "No" (bzw. false) ergibt. Das "No" wird zurückgegeben. Damit ist die vorhergehende "summe" auch "No", da ja alle kommagetrennten Ausdrücke valide sein müssen (was bei "No" ja nicht der Fall ist). Somit wird das "No" rekursiv durchgereicht, bis bei dir oben als Ergebnis "No" steht.

    Versuche doch das Problem nicht nur mit einer Regel zu lösen.

    Schau erst einmal ob du es selber lösen kannst. Wenn du absolut nicht weiter kommst kann ich auch eine Lösung für dich erstellen. Das minimiert allerdings deine Erkenntnisse.