raniero
08-05-2006, 17:34
ciao , sto tentando d'imparare il prolog, e mi sono arenato su un semplice esercizio..
Scrivere un programma Prolog che date due liste L1 ed L2 di numeri interi, calcoli la lista L degli elementi a comune tra L1 ed L2 e restituisca anche il valore della somma degli elementi di L.
premettendo che l'intersezione di due liste e' questa:
intersection([], S, []).
intersection([X|Xs], S, [X|Xs1],):- member(X,S),!,intersection(Xs, S, Xs1).
intersection([X|Xs], S, Xs1):- intersection(Xs, S, Xs1).
e la somma degli elementi di una lista generica e' questa:
somma([],0).
somma([X|C],N) :- somma(C,N1), N is N1 + X.
come posso combinare le due procedure per ottenere l'intersezione e poi la somma?
grazie
Scrivere un programma Prolog che date due liste L1 ed L2 di numeri interi, calcoli la lista L degli elementi a comune tra L1 ed L2 e restituisca anche il valore della somma degli elementi di L.
premettendo che l'intersezione di due liste e' questa:
intersection([], S, []).
intersection([X|Xs], S, [X|Xs1],):- member(X,S),!,intersection(Xs, S, Xs1).
intersection([X|Xs], S, Xs1):- intersection(Xs, S, Xs1).
e la somma degli elementi di una lista generica e' questa:
somma([],0).
somma([X|C],N) :- somma(C,N1), N is N1 + X.
come posso combinare le due procedure per ottenere l'intersezione e poi la somma?
grazie