Prolog: Liste sortieren

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

  • Prolog: Liste sortieren

    Möchte Prolog dazu bringen, aus einer gegebenen Liste eine sortierte zu ermitteln:

    getfirst([H|T], H).
    issmaller(X,Y) :- Y >= X.
    issort([]).
    issort([H|[]]).
    issort([H|T]) :- getfirst(T,H2), issmaller(H,H2), issort(T).
    countelem([],E,0).
    countelem([H|T],H,N) :- N is N2 + 1, countelem(T,H,N2).
    countelem([H|T],E,N) :- countelem(T,E,N).
    ispermut([],[]).
    ispermut([H1|T1],[H2|T2]) :- countelem([H1|T1],H1,N), countelem([H2|T2],H1,N), ispermut(T1,T2).
    dosort(L1,L2) :- issort(L2), ispermut(L1, L2).

    Die Relation countelem bereitet Schwierigkeiten. Erhalte die Meldung:
    ERROR: is/2: Arguments are not sufficiently instantiated

    Die Argumente sind nicht ausreichend instanziiert. Was bedeutet das?