ユーザーからの特定の入力のみを受け入れる述語を作成したいのですが、ユーザーが間違った入力をした場合、正しい入力を求め続けます。私はこれを作成しましたが、間違っている場合は新しい入力を要求しないため、完了していません:
askchar(X):- write('give char'),nl, get_char(X), test(X).
test(X):- X=a, write('ok'). %accepts a
test(X):- X='1', write('ok'). %accepts 1
test(X):- write('wrong input. try again'),nl.