2012-12-12 7 views
2

Je suis un débutant dans SWI-Prolog (5.10.5 en cours d'exécution sur la victoire 7).Appliquer des prédicats sur une liste dans Prolog

Il y a 3 fichiers dans une application que j'apprends sur: a.pl et b.pl et c.pl

a.pl utilise le foldl sous-jacente/4, qui semble être en apply.pl.

c.pl, utilise les éléments suivants:

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

et appelle des prédicats dans ces fichiers. Lorsque j'exécute c.pl, j'obtiens une exception: foldl/4 n'est pas défini. J'ai essayé d'ajouter ce qui suit à a.pl:

:- use_module(library(apply)). 

et

:- [library(apply)]. 

mais aucune utilisation.

Pourriez-vous aider?

Merci à l'avance Suzi

Répondre

2

Je suis en cours d'exécution sur Ubuntu 5.10.4 et ma version ne dispose pas apply:foldl, mais il ne la plupart des autres prédicats apply. La source en ligne montre que foldl a été ajoutée le 2012-06-05, mais les versions 5.10.X ont plus de 2 ans.

Il semble donc que les documents en ligne sont pour des versions beaucoup plus récentes, que vous auriez besoin de mettre à niveau pour avoir ce prédicat.

+0

Merci pour la réponse. Y at-il un moyen de mettre à niveau, ou je devrais désinstaller et réinstaller? –

+0

Il existe peut-être un moyen de mettre à niveau uniquement la bibliothèque par elle-même. Mais désinstaller/réinstaller la nouvelle version est probablement plus fiable. – Edmund