prolog

    7calore

    3risposta

    Perché questo non funziona per definire "sposato" in Prolog? married(X,Y):-married(Y,X). Questi tipi di predicati circolari non sono consentiti? Come lo risolverei? Grazie

    9calore

    4risposta

    La seguente storia è tratta da N. Wirth (1976) Algoritmi + Datastructures = Programmi. ho sposato una vedova (chiamiamolo il suo W) che aveva una figlia cresciuta-up (la chiamano D). Mio padre (F), ch

    5calore

    3risposta

    Cosa c'è di sbagliato nella mia funzione di alimentazione? pow(_,0,1). pow(X,Y,Z) :- pow(X,Y-1,X*Z). ?- pow(2,3,Z). ERROR: Out of global stack

    5calore

    3risposta

    Ho un piccolo programma scritto in Prolog. Al momento posso stampare il primo risultato con test(X, 1, 4, 5). write(X). Ma se c'è più di un risultato per X, Come faccio a stampare i prossimi? Grazi

    13calore

    1risposta

    devo P1 predicato che restituisce i valori uno dopo l'altro in questo modo: -? P1(ARGUMENTS, RETURN). -? RETURN = 1; -? RETURN = 2; -? RETURN = 3; -? fail. Ho anche un'altra predicato chiamato P

    24calore

    3risposta

    Domanda intervista! Questo è il modo che normalmente definisce il rapporto member in Prolog: member(X, [X|_]). % member(X, [Head|Tail]) is true if X = Head % that is, if X is the head of th

    7calore

    3risposta

    Sto cercando di imparare un po 'su swi-prolog (oltre ai programmi di base, inutili). Qualcuno può spiegare (forse in pseudocodice) cosa sta facendo questo risolutore di sudoku e le funzioni correlate?

    7calore

    3risposta

    L'ho letto in un libro ma non è stato spiegato affatto. Anche io non l'ho mai visto in un programma. Fa parte della sintassi di Prolog? Per cosa è? Lo usi? Grazie

    6calore

    4risposta

    Sto tentando di implementare una routine di differenza elenco in prolog. Per qualche motivo il seguente fallisce: difference(Xs,Ys,D) :- difference(Xs,Ys,[],D). difference([],_,A,D) :- D is A, !. di

    11calore

    1risposta

    Perché questo non funziona L is [1,2,3,4] e questo funziona: L = [1,2,3]? Ma L is 1 e L = 1 funzionano entrambi allo stesso modo.