Пролог, прорабатываю несколько примеров

Я прорабатываю несколько руководств по Прологу (больше нечего делать, и на этой неделе я узнал, что мне очень нравится программирование, поэтому я прорабатываю некоторые парадигмы) и приступил к упражнению с просьбой написать предикат delete_from_list / 3, который удаляет все заданные вхождения из списка.

Я решил это следующим образом:

delete_from_list([], _, []).
delete_from_list([Ah|At], X, [Ah|Bt]) :- Ah \= X, !, delete_from_list(At, X, Bt).
delete_from_list([_|Ct], X, Bt) :- delete_from_list(Ct, X, Bt).

Что мне интересно, и это может быть скорее эстетическим, чем практическим. Как бы вы, ребята, сделали это по-другому? И почему? m проработал несколько руководств по Prolog (лучше нечего делать, и на этой неделе я узнал, что мне очень нравится программирование, поэтому я прорабатываю некоторые парадигмы) и приступил к упражнению с просьбой ...

Я работаю через несколько руководств по Prolog (ничего лучше, и я узнал ранее на этой неделе, что мне очень нравится программирование, поэтому я прорабатываю некоторые парадигмы) и приступил к упражнению с просьбой написать предикат delete_from_list / 3, который удаляет все указанные вхождения из список.

Я решил это следующим образом:

delete_from_list([], _, []).
delete_from_list([Ah|At], X, [Ah|Bt]) :- Ah \= X, !, delete_from_list(At, X, Bt).
delete_from_list([_|Ct], X, Bt) :- delete_from_list(Ct, X, Bt).

Что мне интересно, и это может быть больше эстетической, чем практической цели. Как бы вы, ребята, сделали это по-другому? И почему? m проработал несколько руководств по Prolog (лучше нечего делать, и в начале этой недели я узнал, что мне очень нравится программирование, поэтому я прорабатываю некоторые парадигмы) и приступил к упражнению с просьбой ...

Я работаю через некоторые учебные пособия по Prolog (ничего лучше, и я узнал ранее на этой неделе, что мне очень нравится программирование, поэтому я прорабатываю некоторые парадигмы) и приступил к упражнению с просьбой написать предикат delete_from_list / 3, который удаляет все заданные вхождения из список.

Я решил это следующим образом:

delete_from_list([], _, []).
delete_from_list([Ah|At], X, [Ah|Bt]) :- Ah \= X, !, delete_from_list(At, X, Bt).
delete_from_list([_|Ct], X, Bt) :- delete_from_list(Ct, X, Bt).

Что мне интересно, и это может быть скорее эстетической, чем практической целью. Как бы вы, ребята, сделали это по-другому? И почему? m проработал несколько руководств по Prolog (ничего лучше делать, и в начале этой недели я узнал, что мне очень нравится программирование, поэтому я прорабатываю некоторые парадигмы) и приступил к упражнению с просьбой написать предикат delete_from_list / 3, который удаляет все случаев из списка.

Я решил это следующим образом:

delete_from_list([], _, []).
delete_from_list([Ah|At], X, [Ah|Bt]) :- Ah \= X, !, delete_from_list(At, X, Bt).
delete_from_list([_|Ct], X, Bt) :- delete_from_list(Ct, X, Bt).

Что мне интересно, и это может быть скорее эстетическим, чем практическим. Как бы вы, ребята, сделали это по-другому? И почему? m проработал несколько руководств по Prolog (делать нечего, и ранее на этой неделе я узнал, что мне очень нравится программирование, поэтому я прорабатываю некоторые парадигмы) и приступил к упражнению с просьбой написать предикат delete_from_list / 3, который удаляет все данные случаев из списка.

Я решил это следующим образом:

delete_from_list([], _, []).
delete_from_list([Ah|At], X, [Ah|Bt]) :- Ah \= X, !, delete_from_list(At, X, Bt).
delete_from_list([_|Ct], X, Bt) :- delete_from_list(Ct, X, Bt).

Что мне интересно, и это может быть скорее эстетическим, чем практическим. Как бы вы, ребята, сделали это по-другому? И почему? Как бы вы, ребята, сделали это по-другому? И почему? Как бы вы, ребята, сделали это по-другому? И почему? Это в основном для более широкого понимания способов решения проблем в прологе :) Например, можно ли это сделать в 1 правиле?

5
задан James Webster 30 August 2013 в 14:34
поделиться