3

UNIXの一般的なワークフローは、フィルターのパイプラインを使用して、最終的にlessなどのポケットベルを使用することです。例(引数を省略)

grep | sed | awk | less

さて、swi-prologのコマンドラインの典型的なワークフローの1つは、次のような特定の接続詞のソリューションのセットを提供するように要求することです。

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

それは私に一連の解決策を容易に与えます。これは、ターミナルウィンドウよりもはるかに長くなる可能性があります。または単一のクエリ

give_me_long_list(X).

画面に収まらない非常に長いリストを再び与える可能性があります。|lessですから、私は常に、列の最後で平手打ちしたい状況にいることに気づきます。

私が探しているのは、一連のソリューションまたは1つの大きな用語をポケットベルで開く機能です。似たようなもの:

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 に答える