Вы должны иметь заголовок в своем предложении, например,
do :- read(Term),
(Term = 'A' -> doA, !;
(Term = 'B' -> doB, !;
(Term = 'C' -> doC))).
doA :- writeln('DoA').
doB :- writeln('DoB').
doC :- writeln('DoC').
Затем, позвоните ?- do.
и введите 'A'. <enter>
.
Проще использовать простые константы:
do2 :- read(Term),
(Term = a -> doA, !;
(Term = b -> doB, !;
(Term = c -> doC))).
Затем вызовите ?- do2.
и введите a. <enter>
.