top-shop.ru
Набор люверсов 'Belladonna',
Чтение с консоли

Ввод термов с консоли

| ?- [user].
compiling user for byte code...
cube :- write( '?'), read( X), work( X).
work(stop) :- !.
work( N) :- C is N * N * N, write( C), cube.

user compiled, 4 lines read - 889 bytes written, 5515 ms

(31 ms) yes
| ?- cube.
?12.
1728?10.
1000?stop.

(32 ms) yes
Здесь используется встроенный предикат read, для чтения термов с консоли (из текущего входного потока). Цель с таким предикатом вызывает чтение терма и сопоставление его с переменной, которая при этом конкретизируется и становится равной прочитанному терму. После каждого терма должна стоять точка.

Предикат read в случае неуспеха не производит возврата для чтения следующего терма (генерирует исключение).

Блог изучающего Пролог

содержание