Программирование на языке Пролог для искусственного интеллекта





Глава 3. Списки, операторы, арифметика


    Глава 3. Списки, операторы, арифметика
    Глава 3 СПИСКИ, ОПЕРАТОРЫ, АРИФМЕТИКА В этой главе мы будем изучать специальные способы представления списков. Список - один из самых простых и полезных типов структур. Мы рассмотрим также некотор...
Представление списков
Представление списков Список - это простая структура данных, широко используемая в нечисловом программировании. Список - это последовательность, составленная из произвольного числа элементов, напр...Представление списка [энн, теннис, том, лыжи] в виде дерева.
Представление списка [энн, теннис, том, лыжи] в виде дерева. Приведенный пример также напоминает вам о том, что элементами списка могут быть любые объекты, в частности тоже списки. На практике час...Некоторые операции над списками
Некоторые операции над списками Списки можно применять для представления множеств, хотя и существует некоторое различие между этими понятиями: порядок элементов множества не существенен, в то врем...Конкатенация списков.
Конкатенация списков. Составленную программу можно теперь использовать для сцепления заданных списков, например: ?- конк( [a, b, с], [1, 2, 3], L ). L = [a, b, c, 1, 2, 3] ?- конк( [а, [b, с], d],...Процедура принадлежит1 находит элемент в заданном
Процедура принадлежит1 находит элемент в заданном списке, производя по нему последовательный поиск. В этом предложении сказано: X принадлежит L, если список L можно разбить на два списка таким обр...Упражнения
Упражнения (а) Используя отношение конк , напишите цель, соответствующую вычеркиванию трех последних элементов списка L, результат - новый список L1. Указание: L - конкатенация L1 и трехэлементног...Отношения принадлежит и подсписок.
Отношения принадлежит и подсписок . Его можно сформулировать так: S является подсписком L, если (1) L можно разбить на два списка L1 и L2 и (2) L2 можно разбить на два списка S и L3. Как мы видели...Один из способов построения перестановки списка [x | l].
Один из способов построения перестановки списка [X | L] . Программа для отношения перестановка в свою очередь опять может основываться на рассмотрении двух случаев в зависимости от вида первого сп...Упражнения
Упражнения Определите два предиката четнаядлина( Список) и нечетнаядлина( Список) таким образом, чтобы они были истинными, если их аргументом является список четной или нечетной длины соответствен...Операторная запись (нотация)
Операторная запись (нотация) В математике мы привыкли записывать выражения в таком виде: 2*a + b*с где + и * - это операторы, а 2, а, b, с - аргументы. В частности, + и * называют инфиксными опера...Представление выражения 2*а+b*с в виде дерева.
Представление выражения 2*а+b*с в виде дерева. Поскольку мы обычно предпочитаем записывать такие выражения в привычной инфиксной форме операторов, Пролог обеспечивает такое удобство. Поэтому наше...Две интерпретации выражения а-b-с...
Две интерпретации выражения а-b-с в предположении, что '-' имеет приоритет 500. Если тип '-' есть yfx , то интерпретация 2 неверна, так как приоритет b-с не выше, чем приоритет '-'. Между 'х' и 'у...Множество предопределенных операторов.
Множество предопределенных операторов . Для удобства некоторые операторы в пролог-системах определены заранее, чтобы ими можно было пользоваться сразу, без какого-либо определения их в программе....Интерпретация терма ~(а & в) <===> ~a v ~в
Интерпретация терма ~(А В) === ~A v ~В Подытожим: Наглядность программы часто можно улучшить, использовав операторную нотацию. Операторы бывают инфиксные, префиксные и постфиксные. В принципе, с о...Упражнения
Упражнения 3. 12. Если принять такие определения :- ор( 300, xfy, играет_в). :- ор( 200, xfy, и). то два следующих терма представляют собой синтаксически правильные объекты: Tepмl = джимми играет_...Арифметические действия
Арифметические действия Пролог рассчитан главным образом на обработку символьной информации, при которой потребность в арифметических вычислениях относительно мала. Поэтому и средства для таких вы...Упражнения
Упражнения 3. 16. Определите отношение mах( X, Y, Мах) так, чтобы Мах равнялось наибольшому из двух чисел Х и Y. Посмотреть ответ 3. 17. Определите предикат максспис( Список, Мах) так, чтобы Мах р...Резюме
Резюме Список - часто используемая структура. Он либо пуст, либо состоит из головы и хвоста, который в свою очередь также является списком. Для списков в Прологе имеется специальная нотация. В дан...







Содержаие