Использование findall / 3 с динамической целью? - PullRequest
0 голосов
/ 15 апреля 2019

После того, как findall (+ Template,: Goal, -Bag) соберет первый успешный результат и поместит его в Bag, есть ли способ немедленно изменить нашу цель, например, наша новая цель зависит от результата, который мы только что нашли? например, запрос ниже возвращает LIST = [1,2,3,4,5]. Как мы можем заставить его вернуть LIST = [1], поскольку новый минимум равен 1?

:-use_module(library(clpfd)).

num(X):-
    X in 1..5,
    indomain(X).


?- MIN is 10, findall(X,(num(X),X<MIN),LIST).
...