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



         

Reаd и write - часть 2


        Y = 125

        ?-  куб( 12, Z).

        Z = 1728

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

сама читала соответствующие данные. Теперь программа будет сама читать данные и выводить их кубы до тех пор, пока не будет прочитан атом стоп:

        куб :-

                read( X),

                обработать( X).

        обработать( стоп) :-   !.

        обработать( N) :-

                С is N * N * N,

                write( С),

                куб.

Это был пример программы, декларативный смысл которой трудно сформулировать. В то же время ее процедурный смысл совершенно ясен: чтобы вычислить куб, сначала нужно считать X, а затем его обработать; если Х = стоп, то все сделано, иначе вывести Х3 и рекурсивно запустить процедуру куб для обработки остальных чисел.

С помощью этой новой процедуры таблица кубов чисел может быть получена таким образом:

        ?-  куб.

        2.

        8

        5.

        125

        12.

        1728

        стоп.

        yes




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