Prolog中的命令行参数向量?

Command line argument vectors in Prolog?

它们存在吗?我编写了一个解决数独难题的程序,它需要3个步骤才能运行。

1
2
3
> prolog
> consult(sudoku).
> solve(puzzle).

我正在寻找一种类似

的方法

1
> prolog puzzle

并完成它。有没有办法在Prolog中做到这一点?还是我必须用C或其他语言编写一些帮助程序才能使用,例如

1
> ./solve puzzle

任何帮助将不胜感激。还是Prolog的新手,很难找到好的文档。


这取决于您使用的Prolog系统。大多数Prolog系统都有命令行
从这里可以提供初始的Prolog文本供您参考,然后
最初要运行的Prolog目标。

这里有一些例子,我结合了咨询并遇到了一个共同的目标:

SWI-Prolog:

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

GNUprolog:

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

Jekejekeprolog:

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

致谢


使用-g标志,可以使Prolog在进入顶层之前执行您选择的目标。默认是一个谓词,它会打印欢迎消息。此外,您可能希望使用-t标志来将默认目标prolog / 0替换为您选择的目标之一,作为交互式顶层。

另请参见手册。