Le flux de travail typique dans unix consiste à utiliser un pipeline de filtres se terminant par un pageur comme moins. Par exemple. (en omettant les arguments)pager moins semblable pour (swi) prolog
grep | sed | awk | less
Maintenant, l'un des flux de travail typique dans la ligne de commande du SWI-Prolog lui demande de donner l'ensemble des solutions pour une conjonction donnée comme
foo(X),bar(X, Y),qux(buz, Y).
Il me donne facilement l'ensemble des soutions. Ce qui peut être beaucoup plus long que la fenêtre du terminal. Ou une seule requête
give_me_long_list(X).
peut donner une liste très longue à nouveau ne correspondant pas à l'écran. Donc je me retrouve constamment dans des situations où je veux gifler |less
à la fin de la ligne.
Ce que je recherche est une facilité d'ouvrir dans un pager un ensemble de solutions ou juste un seul grand terme. Quelque chose de semblable à:
give_me_long_list(X), pager(X).
ou
pager([X,Y], (foo(X),bar(X, Y),qux(buz, Y))).
Qu'en est-il d'ajuster le terminal pour faire défiler? Habituellement, des centaines voire des milliers de lignes peuvent être dans le tampon de défilement. Prolog peut également être exécuté dans Emacs pour fournir un défilement illimité. Utilisez le mode Emacs * shell * ou une extension telle que [ediprolog] (http://www.logic.at/prolog/ediprolog/ediprolog.html). – frayser
utiliser 'portray_clause' et le terminal pour se promener? –