Главная

ПРОЕКТ "ЧЕЛОВЕК. ЗЕМЛЯ. ВСЕЛЕННАЯ"

Инструменты пользователя

Инструменты сайта


project:prolog:read



Встроенный предикат read

SWI-Prolog

Ввод при использовании языков с динамической типизацией (SWI Prolog) имеет свои особенности. Во многих других диалектах Пролога используется статическая типизация, поэтому при вводе могут использоваться предикаты типа readInt, однако, в SWI таких предикатов нет. Основным предикатом для ввода данных является read/1.

Предикат read/1 осуществляет ввод терма с входного потока. Термы на прологе завершаются точкой. Пример использования read/1 для ввода терма:

? - <Enter>
|    read(X), write(X), nl, X. <Enter>
|: L1 = [1,2], L2 = [3,4], append(L1, L2, R), write(R), nl.
_G583=[1,2],_G592=[3,4],append(_G583,_G592,_G597),write(_G597),nl
[1,2,3,4]
X = ([1, 2]=[1, 2], [3, 4]=[3, 4], append([1, 2], [3, 4], [1, 2, 3, 4]), write([1, 2, 3, 4]), nl).
 
7 ?- 

1 строка - просим интерпретатор ввести терм X, вывести его и выполнить. При вводе таких данных, переменная X будет унифицирована всем введенным термом.

2 строка - пример терма: интерпретатор выполняет наш запрос.

3 строка - вывод терма Х, но это не совсем то, что мы ввели — ведь прошла унификация, и переменных L1 и L2 были заменены внутренними именами, используемыми интерпретатором.

4 строка - выполняется терм Х, показан результат выполнения.

!!Рекомендуем: ОбучениеСемейная Энциклопедия ЗдоровьяКонсультация аналитикаОглавлениеГлавная сайта

Обсуждение

Ваш комментарий:
W X G᠎ V M
 
project/prolog/read.txt · Последние изменения: 2014/05/09 19:04 (внешнее изменение)

Вы можете оставить свои комментарии в разделе "Обсуждение".
Рекомендуем оформить подписку на новости данного раздела. Для этого нажмите на кнопку "Подписаться", расположенную справа снизу каждой страницы (знак конверта).


www.work-zilla.com

Индекс цитирования