Program calculates combinations with repeated elements.
Source: Guide to Prolog Programming (on-line tutorial)
Program source code: combinations_with_repeated.pl
comb_rep(0,_,[]). comb_rep(N,[X|T],[X|RComb]):-N>0,N1 is N-1,comb_rep(N1,[X|T],RComb). comb_rep(N,[_|T],RComb):-N>0,comb_rep(N,T,RComb).