Beiträge von Kiloui

    Hi,
    also wenn man mit Listen arbeiten will nutzt man die Schreibweise "x : s" um auf das erste Element einer Liste zuzugreifen, wobei:
    x=erstes Element
    xs=Rest der Liste
    Nun habe ich hier folgendes Bsp und weiß nicht wie die Schreibweisen zu verstehen sind:
    concat :: [[Int]] -> [Int]
    concat xxs = [x | xs <- xxs, x <- xs]

    Wieso wird hier "xxs" geschrieben ? Wofürs steht "xxs" bzw. "xs" ? :?

    Code
    ggt(A, B, C) :- C is ggt(B, A mod B, C).
    ggt(A, 0, C) :- C is A.
    ggt(0, 0, C) :- C is 0.


    Das sieht für mich wesentlich einfacher und klarer aus...


    hey danke für deine Antwort :)
    Aber es geht mir wirklich nur speziell um diese mögliche Implementierung und darum die letzten beiden Zeilen zu verstehen.
    Deine rekursive Lösung ist an sich besser ich weiß :)

    Hey,

    ich hab hier folgende mögliche Lösung um den ggT mittels Prolog zu bestimmen:

    Code
    ggt(A, B, C) :-gt(A, B, C), not(larger_gt(A, B, C)).
     
    larger_gt(A, B, C) :-gt(A, B, C1), C1>C.
     
    gt(A, B, C) :-t(A, C), t(B, C).
     
    t( A, C ) : - zwischen(1, C, A), AmodC =:= 0.
     
    zwischen(C, C, O).
    zwischen(U, C, O) :-O>U, U1 isU+1, zwischen(U1, C, O).



    kann mir jmd die letzten beiden Zeilen erklären !? Was bewirkt "zwischen(C, C, O)."
    Und wieso läßt man in der untersten Zeile das U gegen O laufen ?