Программирование пролога для начинающих - PullRequest
0 голосов
/ 16 февраля 2011

Я пытаюсь выучить пролог.Я хочу написать в прологе код для общего списка чисел.Пока что у меня есть pick_numbers_general(List, N, NumList), где List - это общий список (включая вложенные), а N - это число.

Предикат завершается успешно, если NumList - это список чисел вList, в том числе во вложенных списках, больше N.Порядок появления чисел в Numlist такой же, как в L, поэтому, например, pick_numbers_general([g,h,1,[2,[n,3]],p],1,NumList) имеет значение true, когда NumList равно [2,3].

1 Ответ

0 голосов
/ 16 февраля 2011

Подсказка: вы делаете три операции одновременно. Если вы разделите их, это упражнение станет намного проще.

pick_numbers_general(List, Min, Numbers) :-
    flatten(List, Flat),
    filter_numbers(Flat, Numbers0),
    filter_greater_than(Numbers0, Min, Numbers).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...