Подписаться на RSS и Twitter
-
Свежие записи
Loading ...Котировки и индексы
Курсы валют
Архив рубрики: Я_Логика
Списки в Прологе – 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). … Читать далее







