Różnice
Różnice między wybraną wersją a wersją aktualną.
|
|
— |
pl:prolog:pllib:lists_merging [2019/06/27 15:50] (aktualna) |
| ====== Lists merging ====== |
| {{tag>lists cut}} |
| ===== Description ===== |
| Merging lists with cuts |
| |
| **Source**: The Art of Prolog |
| ===== Download ===== |
| Program source code: {{lists_merging.pl}} |
| ===== Listing ===== |
| <code prolog> |
| /* |
| mymerge(Xs,Ys,Zs) :- |
| Zs is an ordered list of integers obtained from merging |
| the ordered lists of integers Xs and Ys. |
| */ |
| mymerge([X|Xs],[Y|Ys],[X|Zs]) :- |
| X < Y, !, mymerge(Xs,[Y|Ys],Zs). |
| mymerge([X|Xs],[Y|Ys],[X,Y|Zs]) :- |
| X =:= Y, !, mymerge(Xs,Ys,Zs). |
| mymerge([X|Xs],[Y|Ys],[Y|Zs]) :- |
| X > Y, !, mymerge([X|Xs],Ys,Zs). |
| mymerge(Xs,[],Xs) :- !. |
| mymerge([],Xs,Xs) :- !. |
| |
| % Program 11.2 Merging with cuts |
| |
| |
| </code> |
| ===== Comments ===== |
| |