- Философия, эзотерика:
- Религии:
- Познавательное
(обо всём)
Ввод при использовании языков с динамической типизацией (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 строка - выполняется терм Х, показан результат выполнения.
!!Рекомендуем: Что должен знать современный человек? ⇒ Семейная Энциклопедия Здоровья ⇒ Самоанализ. Работа над собой ⇒ Оглавление ⇒ Главная сайта
Обсуждение