ВУЗ:
Составители:
129 
В Прологе формулировка понятия «быть элементом списка» делается так: 
X  является  элементом  списка  Y,  если  X  равен  первому  элементу  списка,  или  X  является 
элементом  списка  Z,  полученного  из  Y  отбрасыванием  первого  элемента.  Запись  соответствующей 
процедуры непосредственно на языке Пролог выглядит так: 
Является_элементом (X, [ Первый Z ]): 
- Х= Первый; 
Является_ злементом(Х, Z). 
Операция  "]"  в  Прологе  соответствует  логической  операции  "ИЛИ".  Операция  "j"  разделяет 
список на две части - первый элемент его и остальное. Если такая процедура введена в базу данных 
Пролога, можно вводить запрос: 
? - является_элементом (3,[ 1,3,5,7]). 
Ответ: Да. 
В  определении  этой  процедуры  используется  такой  на  первый  взгляд  странный  прием,  как 
определение некоторого понятия с помощью его же. Так, в определении понятия "является элементом 
списка" мы пользуемся самим этим понятием так, как будто оно уже определено. В программировании 
такой прием называется рекурсией. В традиционных процедурных языках программирования рекурсия 
хотя  и  допускается,  но  используется  редко,  от  случая  к  случаю.  В  языках  же  логического 
программирования рекурсия является основой всего. Она заменяет собой понятие цикла, как, например, 
в  данной  процедуре,  и  обеспечивает  циклическое  повторение  некоторых  действий  над  каждым  из 
множества значений, заданного списком. 
Необычной особенностью языка Пролог является то, что в некоторых случаях можно задавать не 
все  требуемые  параметры  процедуры-  В  этом  случае  Пролог  сам  пытается  подобрать  подходящие 
значения.  Например,  если  з  запросе,  содержащем  вызов  процедуры  «является_элементом»,  вместо 
заданного  значения  указать  переменную,  то  решением  задачи  будут  все  элементы  списка.  ?  — 
является_элементом (N,[1,3,5,7]). Ответ: 
N=1 
N32 
N=5 
N=7 
В Прологе формулировка понятия «быть элементом списка» делается так:
     X является элементом списка Y, если X равен первому элементу списка, или X является
элементом списка Z, полученного из Y отбрасыванием первого элемента. Запись соответствующей
процедуры непосредственно на языке Пролог выглядит так:
     Является_элементом (X, [ Первый Z ]):
     - Х= Первый;
     Является_ злементом(Х, Z).
     Операция "]" в Прологе соответствует логической операции "ИЛИ". Операция "j" разделяет
список на две части - первый элемент его и остальное. Если такая процедура введена в базу данных
Пролога, можно вводить запрос:
      ? - является_элементом (3,[ 1,3,5,7]).
      Ответ: Да.
      В определении этой процедуры используется такой на первый взгляд странный прием, как
определение некоторого понятия с помощью его же. Так, в определении понятия "является элементом
списка" мы пользуемся самим этим понятием так, как будто оно уже определено. В программировании
такой прием называется рекурсией. В традиционных процедурных языках программирования рекурсия
хотя и допускается, но используется редко, от случая к случаю. В языках же логического
программирования рекурсия является основой всего. Она заменяет собой понятие цикла, как, например,
в данной процедуре, и обеспечивает циклическое повторение некоторых действий над каждым из
множества значений, заданного списком.
   Необычной особенностью языка Пролог является то, что в некоторых случаях можно задавать не
все требуемые параметры процедуры- В этом случае Пролог сам пытается подобрать подходящие
значения. Например, если з запросе, содержащем вызов процедуры «является_элементом», вместо
заданного значения указать переменную, то решением задачи будут все элементы списка. ? —
является_элементом (N,[1,3,5,7]). Ответ:
   N=1
   N32
   N=5
   N=7
                                               129
Страницы
- « первая
- ‹ предыдущая
- …
- 127
- 128
- 129
- 130
- 131
- …
- следующая ›
- последняя »
