18c0693f

Некоторые правила хорошего стиля



8. 3. 1.    Некоторые правила хорошего стиля

Для иллюстрации некоторых положений данного раздела рассмотрим отношение

        слить( Спис1, Спис2, Спис3)

где Спис1 и Спис2 - упорядоченные списки, а Спис3 -результат их слияния (тоже упорядоченный). Например:

        слить( [2, 4, 7], [1, 3, 4, 8], [1, 2, 3, 4, 4, 7, 8] )

Вот стилистически неудачная реализация этого отношения:

        слить( Спис1, Спис2, Спис3) :-
                Спис1 = [ ],  !,  Спис3 = Спис2;

                                                    % Первый список пуст
                Спис2 = [ ],  !,  Спис3 = Спис1;
                                                    % Второй список пуст
                Спис1 = [X | Остальные],
                Спис2 = [Y | Остальные],
                ( Х < Y,  !,
                Z = X,
                          % Z - голова Спис3
                слить( Остальные1, Спис2, Остальные3 );
                Z = Y,
                слить( Спис1, Остальные2, Остальные3 ) ),
                Спис3 = [Z | Остальные3].

Вот более предпочтительный вариант, не использующий точек с запятой:

        слить( [ ], Спис, Спис).

        слить( Спис, [ ], Спис).

                слить( [X | Остальные1], [Y | Остальные2], [X | Остальные3] ) :-
                Х < Y,  !,
                слить(Остальные1, [Y | Остальные2], Остальные3).

                слить( Спис1, [Y | Остальные2], [Y | Остальные3]): -
                слить( Спис1, Остальные2, Остальные3 ).



Содержание раздела