Архив рубрики: Я_Логика

Списки в Прологе – 1

В императивных языках, как правило, основной структурой данных являются массивы. В Прологе – это списки. Список – последовательность элементов одного типа. Задается перечислением элементов через запятую в квадратных скобках. Например, [джек, джон, фред] или [3,1,8,0,34,9] или ['a', 'b', 'c', 'd']. … Читать далее

Списки в Прологе – 5

7. Обратите список Domains intlist = integer* Predicates reverse(intlist, intlist) Clauses reverse([], []). reverse([X|L1], L2):- reverse(L1,L3), append(L3,[X],L2). Goal reverse([1,2,3,4],L). 8. Удалите все отрицательные элементы из списка Domains intlist = integer* Predicates filtr(intlist, intlist) Clauses filtr([],[]). filtr ([H|T], [H|L]):- H>=0, filtr … Читать далее

Списки в Прологе – 2

1. Выведите список из целых чисел Предикат имеет один аргумент – список, который необходимо вывести. Domains intlist = integer* Predicates writeList(intlist) Clauses writeList([]):-write(‘ ‘). writeList([H|T]):-write(H,’ ‘), writeList(T). Goal writeList([3,4,1]). Если список пустой, ничего не делаем. Иначе выводи голову списка, а … Читать далее

Списки в Прологе – 3

3. Прибавьте единицу к каждому элементу списка Предикат имеет два аргумента – исходный список и результирующий список, полученный из первого прибавлением единицы к его элементам. Domains intlist = integer* Predicates new(intlist, intlist) Clauses new([],[]). new([H|T],[K|L]):-K=H+1,new(T,L). Goal new([3,4,1,2,5],L). Результат прибавления единицы … Читать далее

Списки в Прологе – 4

5.  Удалите данный элемент из списка Предикат имеет три аргумента – удаляемый элемент, список, из которого удаляем, и список после удаления. Domains intlist = integer* Predicates select(integer, intlist, intlist) Clauses select(X, [X|L], L). select(X, [Y|L], [Y|R]) :- select(X, L, R). … Читать далее