Bonjour
J'ai vu passer ton message sur StackOverflow...
Un bon début serait d'écrire en français ou en pseudo code l'enchaînement des opérations tel que tu le conçois.
Cette ligne n'a aucune signification en Prolog.
Ce que tu as "peut-être" voulu exprimer est que si les listes arg2 et arg3 sont vides alors le résultat est N.
En Prolog on ne fonctionne pas en termes de fonction, les prédicats indiquent des changement d'états, donc en principe dans les prédicats on a des arguments d'entrée et un (ou des) arguments de sortie.
produit(Input1, Input2, ..., Output)
Dans ton cas il faudra écrire
On règle ainsi le cas de terminaison de ton algo.
Maintenant le cas général.
Tu as une valeur courante du produit et deux listes qui restent à parcourir. On s'intéresse aux premiers éléments de ces listes.
Donc la clause générale aura cette signature.
produit(N, [H1|T1], [H2|T2], Output) :-
A toi d'écrire le reste.
Bon courage
Partager