logo
TurboProlog / Документация / TOM_1

Определение 2

singlepeak([]).

singlepeak([U]).

singlepeak([U,V|Y]):-U<V,singlepeak([V|Y]).

singlepeak([U,V|Y]):-U>V,down([V|Y]).

down([]).

down([U]).

down([U,V|Y]):-U>V,down([V,Y]).

В определении 3 предикат singlepeak еще больше сокращается за счет

применения правила 1. Таким образом, используя определение 3

singlepeak(Y,up)

выполняется успешно, если Y содержит список, добавляемый к списку целых

чисел, расположенных в порядке возрастания значений, а

singlepeak(Y,down)

выполняется успешно, если Y содержит список целых чисел, расположенных в

порядке убывания.