3

unix 中的典型工作流程是使用过滤器管道,最后使用诸如 less 之类的寻呼机。例如(省略参数)

grep | sed | awk | less

现在,swi-prolog 命令行中的典型工作流程之一是要求它为给定的连词提供一组解决方案,例如

foo(X),bar(X, Y),qux(buz, Y).

它很容易给我一套解决方案。这可能比终端窗口长得多。或单个查询

give_me_long_list(X).

可以再次给出一个很长的列表,不适合屏幕。因此,我经常发现自己处于想|less在排队结束时打耳光的情况。

我正在寻找的是一种在寻呼机中打开一组解决方案或只是一个大术语的工具。类似于:

give_me_long_list(X), pager(X).

或者

pager([X,Y], (foo(X),bar(X, Y),qux(buz, Y))).
4

1 回答 1

1

pager这不是一个完整的解决方案,但是编写自己的谓词不是很容易吗?脚步:

  1. 创建临时文件

  2. 在这些那些谓词 X的帮助下转储到临时文件中

    (我还没有用 Prolog 做过任何 I/O,但看起来并不太乱)

  3. 进行系统调用less <tempfile>

于 2010-12-23T20:28:54.193 回答