Prolog 百夜話

引数がリストかどうか判定する述語 list/1 の定義は、

list([_|_]).

です。

?- list([1,2,3]).
yes
?- list([1,2|R]).
R = _13353
yes
?- list([1,[a,b],3]).
yes
?- list(3).
no

ところで、
?- list([]).
no
?- 空リストはリストではありません。アトムです。