12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- % Premiere definition de factorielle(N)
- % 2 clauses : cas trivial et clause recursive
- % factorielle(0) = 1
- % factorielle(N) = N*factorielle(N-1)
-
-
- fact(0,1).
- % fact(0,1) :- !.
-
- fact(N,F) :-
- N1 is N-1,
- fact(N1,F1),
- F is N*F1.
-
- fact_v2(0,1).
-
- fact_v2(N,F) :-
- not(N =< 0),
- N1 is N-1,
- fact_v2(N1,F1),
- F is N*F1.
-
- somme([], 0).
-
- somme([Head | Tail],S) :-
- somme(Tail, R),
- S is R + Head.
-
-
- somme2([],S,S).
-
- somme2([X|L],I,S) :-
- J is X+I,
- somme2(L,J,S).
-
-
- fibo(0, 0).
- fibo(1, 1).
-
- fibo(N, Result) :-
- N > 1,
- N1 is N - 1,
- N2 is N1 - 1,
- once(fibo(N1, Result1)),
- once(fibo(N2, Result2)),
- Result is Result1 + Result2.
-
- fiboplus(0, 0, _).
- fiboplus(1, 1, 0).
-
- fiboplus(N, Result, ResultN1) :-
- N > 1,
- N1 is N - 1,
- fiboplus(N1, ResultN1, ResultN2),
- Result is ResultN1 + ResultN2.
|