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




Сцепление ( конкатенация) - часть 2


заданного списка на две части:

        ?- конк( L1, L2, [а, b, с] ).

        L1 = [ ]

        L2 = [а, b, c];

        L1 = [а]

        L2 = [b, с];

        L1 = [а, b]

        L2 = [c];

        L1 = [а, b, с]

        L2 = [ ];

        no

            (нет)

Список  [а, b, с]  разбивается на два списка четырьмя способами, и все они были обнаружены нашей программой при помощи механизма автоматического перебора.

Нашу программу можно также применить для поиска в списке комбинации элементов, отвечающей некоторому условию, задаваемому в виде шаблона или образца. Например, можно найти все месяцы, предшествующие данному, и все месяцы, следующие за ним, сформулировав такую цель:

        ?- конк( До, [май | После ],

                  [янв, фев, март, апр, май, июнь,

                        июль, авг, сент, окт, ноябрь, дек]).

        До = [янв, фев, март, апр]

        После = [июнь, июль, авг, сент, окт, ноябрь, дек].

Далее мы сможем найти месяц, непосредственно предшествующий маю, и месяц, непосредственно следующий за ним, задав вопрос:

        ?- конк( _, [Месяц1, май, Месяц2 | _ ],

                   [янв, февр, март, апр, май, июнь,



Содержание  Назад  Вперед