2

それらは存在しますか?私は数独パズルを解くプログラムを書きました、そしてそれは実行するのに3つのステップを要します。

> prolog
> consult(sudoku).
> solve(puzzle).

私は次のようなことをする方法を探しています

> prolog puzzle

そしてそれで終わります。これをPrologで行う方法はありますか?または、次のように使用するために、Cまたは他の言語でヘルパープログラムを作成する必要がありますか?

> ./solve puzzle

どんな助けでもいただければ幸いです。Prologはまだ新しいので、良いドキュメントを見つけるのに苦労しています。

4

3 に答える 3

3

それはあなたが使用しているPrologシステムに依存します。ほとんどのPrologシステムにはコマンドラインスタートがあり、参照する最初のPrologテキストと実行する最初のProlog目標を提供できます。

ここにいくつかの例があります、私は相談を組み合わせて、1つの結合目標にぶつかりました:

SWI-プロローグ

> swipl -t ['sudoku.p'],puzzle

GNUプロローグ

> gprolog --entry-goal ['sudoku.p'],puzzle,halt

Jekejekeプロローグ

> java -jar interpreter.jar -t ['sudoku.p'],puzzle

よろしくお願いします

于 2012-04-28T19:27:26.470 に答える
2

フラグを使用する-gと、トップレベルに入る直前にPrologに選択した目標を実行させることができます。デフォルトは、ウェルカムメッセージを出力する述語です。さらに、-tデフォルトの目標プロローグ/0をインタラクティブなトップレベルとして選択したものに置き換えるフラグを使用することもできます。

マニュアルも参照してください。

于 2012-04-28T19:15:32.813 に答える
0

optparseを使用する

たとえば、プログラムが次の場合:

main :-
    opt_arguments([], _, Args),
    write(Args).

./program 1 foo プログラムが[1、foo]と書くように実行します

于 2021-06-05T00:54:24.637 に答える