Prolog中的命令行参数向量?

Prolog中的命令行参数向量?,prolog,Prolog,它们存在吗?我已经写了一个程序,解决数独难题,它需要3个步骤来运行 > prolog > consult(sudoku). > solve(puzzle). 我正在寻找一种方法来做类似的事情 > prolog puzzle 就这样吧。在Prolog中有没有这样做的方法?或者我必须用C或其他语言编写一些帮助程序才能像这样使用 > ./solve puzzle 任何帮助都将不胜感激。对于Prolog还是新手,并且很难找到好的文档。使用-g标志,您可以让Prolog

它们存在吗?我已经写了一个程序,解决数独难题,它需要3个步骤来运行

> prolog
> consult(sudoku).
> solve(puzzle).
我正在寻找一种方法来做类似的事情

> prolog puzzle
就这样吧。在Prolog中有没有这样做的方法?或者我必须用C或其他语言编写一些帮助程序才能像这样使用

> ./solve puzzle

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

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


另请参见。

这取决于您使用的Prolog系统。大多数Prolog系统都有一个命令行 从可以提供要查阅的初始序言文本和 要运行的初始Prolog目标

以下是一些示例,我将咨询和运行结合到一个连接目标中:

:

:

:

致以最诚挚的问候

请使用

例如,如果您的程序是:

main :-
    opt_arguments([], _, Args),
    write(Args).
您可以像
/program 1 foo

程序将编写[1,foo]

谢谢!也许是有史以来最好的答案。哈哈,我喜欢你的项目名Jekejeke。嘿,我使用的是siwpl,
swipl-t['sudoku.p']
将它用于编译模块,但是
puzzle
会抛出一个错误,因为它没有得到它的参数,它应该是一个文件名。尝试了其他一些方法,如
…,解(谜)
…,解[谜]
。无法让它运行。如果在命令行中没有将参数传递给函数的好方法,那没什么大不了的,但是如果有,那就是sweeet。问题可能是咨询。也许扩展名不是.p,而是.pl。或者您需要提供更长的路径,并注意特定于平台的路径分隔符。然后,您可以使用['path/soduku.pl'],一次解决(谜题),无需空格。空格将不起作用,因为连接将不再被识别为一个命令行参数。
> gprolog --entry-goal ['sudoku.p'],puzzle,halt
> java -jar interpreter.jar -t ['sudoku.p'],puzzle
main :-
    opt_arguments([], _, Args),
    write(Args).