Применение предикатов к списку в Прологе

Я новичок в SWI-Prolog (5.10.5 работает на Win 7).

В приложении есть 3 файла, о которых я узнаю: a.pl, b.pl и c.pl.

a.pl использует предикат foldl/4, который, кажется, находится в apply.pl.

c.pl использует следующее:

:- ensure_loaded('a.pl').
:- ensure_loaded('b.pl').

а затем вызывает некоторые предикаты в этих файлах.

Когда я запускаю c.pl, я получаю исключение, что foldl/4 не определен. Я попытался добавить в a.pl следующее:

:- use_module(library(apply)).

и

:- [library(apply)].

но бесполезно.

Не могли бы вы помочь?

Заранее спасибо Сьюзи


person Suzanne L.    schedule 12.12.2012    source источник


Ответы (1)


Я использую 5.10.4 на Ubuntu, и в моей версии нет apply:foldl, хотя большинство других предикатов есть в apply. Интернет-источник показывает, что foldl был добавлен только 05.06.2012, но версиям 5.10.X более 2 лет.

Таким образом, похоже, что онлайн-документы предназначены для гораздо более новых версий, которые вам нужно будет обновить, чтобы иметь этот предикат.

person Edmund    schedule 12.12.2012
comment
Спасибо за ответ. Есть ли способ обновить, или я должен удалить и переустановить? - person Suzanne L.; 12.12.2012
comment
Может быть способ обновить только библиотеку саму по себе. Но удаление/переустановка новой версии, вероятно, надежнее. - person Edmund; 12.12.2012