次のように作成されたリスト L があります。
atomic_list_concat(L,' ', 'This is a string').
L = ['This',is,a,string]
ここで、メンバー関数を使用して L 内のアトムを検索します。私は試した :
?- member(' is',L).
L = [' is'|_G268] .
?- member( is,L).
L = [is|_G268] .
ここで私が間違っているのは何ですか?
次のように作成されたリスト L があります。
atomic_list_concat(L,' ', 'This is a string').
L = ['This',is,a,string]
ここで、メンバー関数を使用して L 内のアトムを検索します。私は試した :
?- member(' is',L).
L = [' is'|_G268] .
?- member( is,L).
L = [is|_G268] .
ここで私が間違っているのは何ですか?
対話的に実行する Prolog 述部は、状態を保持しません。走るとき
atomic_list_concat(L,' ', 'This is a string').
インタプリタは の割り当てを表示しL
、その値を忘れます。member/2
次の行を実行するL
と、自由変数の状態に戻ります。
L
同じものを引き継がせたい場合は、次のように同じリクエスト内にとどまる必要があります。
:- atomic_list_concat(L,' ', 'This is a string'),
member(is, L),
writeln('membership is confirmed').
L
からの割り当てatomic_list_concat
が に利用可能になりmember/2
、メンバーシップをチェックできるようになりました。