Добавление элементов списка пролога в элементы списка в c # - PullRequest
0 голосов
/ 02 января 2019

Мой код находит факты на основе диапазона значений:

ara_deger_price(L,H,Res) :-
   findall( (Id,B,C,D,Price,F,Points),
            ( table(Id,B,C,D,Price,F,Points),
              \+ Price = null, \+ Price = 'Price', Price > L, Price < H
            ),
            Res).

Выдает результат списка примерно так:

?- ara_deger_price(200,250,X).
X = [ (284, 'Viña Cobos 2011 Marchiori Vineyard Block C2 Malbec (Perdriel)', 'Argentina', 'Malbec', 215, 'Michael Schachner', 92), (349, 'Torbreck 2012 RunRig Shiraz-Viognier (Barossa)', 'Australia', 'Shiraz-Viognier', 225, 'Joe Czerwinski', 97)] ;
false.

Что я хочу сделать, так это добавить каждый элемент этого списка в список C #. Я могу получить доступ к элементам, используя nth0 / 3, но я хочу получить доступ к каждому из них.

Я пробовал это:

show_record([]).
show_record([A|B]) :- write(A), write("\n"), show_record(B).

Который печатает каждый элемент в одну строку в консоли. Могу ли я перенаправить результат из консоли в список или есть способ получить доступ к каждому элементу в Прологе?

1 Ответ

0 голосов
/ 11 января 2019

Я решил проблему и забыл дать обновление.Вот код, который я использовал для решения проблемы:

aralik_price(L,H,X):-ara_deger_price(L,H,Res), member(X,Res).

Он получает список Res из ara_deger_price, находит каждого члена и возвращает их всех с переменной X.В C # я могу получить все члены, просто просматривая переменную X.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...