Описание списков и множеств в метаязыке нормальных форм знаний - Кургаев, А.Ф. (Проблеми програмування, 2020)
Предложена формализация списков, предикатов на списках и множествах в метаязыке нормальных форм знаний, базируясь на известных Пролог-формализациях этих понятий, использующих списковый домен. Среди предикатов на списках описаны: добавление элемента, удаление элемента, поиск последнего элемента, поиск соседних элементов, конкатенация списков, реверс и др. Используя списковый домен описаны предикаты на множествах: превращения списка в множество, принадлежности элемента множеству, объединения, пересечения, разности, симметрической разности, совпадения, дополнения множеств. Списки використовують для подання всіляких знань. У вигляді списків зручно представляти формули, функції, дерева, графи, множини й багато інших складних об'єктів. Множина – одна з найбільш важливих структур даних, використовуваних як у математиці, так і в програмуванні. Запропоновано формалізацію у метамові нормальних форм знань списків, предикатів на списках і множинах, базуючись на відомих Пролог-формалізаціях цих понять, що використовують списковий домен. Серед предикатів на списках описано: додавання елемента, видалення елемента, пошук останнього елемента, пошук сусідніх елементів, конкатенація списків, реверс, паліндром, видалення всіх входжень елемента і ін. Використовуючи списковий домен описано предикати на множинах: перетворення списку в множину, приналежність елемента множині, об'єднання, перетин, різниця, симетрична різниця, збіг, доповнення множин, відношення підмножини, власної підмножини. Lists use for representation of various knowledge. As lists it comfortably to present formulas, functions, trees, columns, great numbers and many other difficult objects. Great number - one of the most essential structures of data, used both in mathematics, and in programming. The formalization of lists, list-based predicates and set-based predicates in the meta-language of normal forms of knowledge is presented, based on the known Prolog-formalizations of these concepts, which use a list-domain. Among the described list-based predicates are the following: adding an element to the list, removing an element, finding the last element of a list, finding adjacent elements in a list, concatenation of lists, reversing a list, palindrome, etc. Using the list-domain, the set-based predicates are described as follows: converting a list into a set, checking if an element is in a set, concatenation, intersection, difference, symmetrical difference, identity, complement of sets, relation of subset, proper subset.