最初は空のリストに値を追加するコードを試しています。追加を使用すると、プログラムが無限ループに陥ったり、スタックを使い果たしたりします。
私は SWI Prolog を使用していますが、Prolog は初めてです。
getcardvalueList([],[_]).
getcardvalueList([H|Ts],[_]):-
getcardvalue(H,Val),
append([_],[Val],Vl),
getcardvalueList(Ts,Vl).
append([X|Y],Z,[X|W]) :- append(Y,Z,W).
append([],X,X).