3

SWI Prolog 允许在具有非零参数的顶级之前执行目标,如下所示

swipl -s consultingfile.pl -g start

但是,当按如下方式指定具有非零元数的谓词时

swipl -s consultingfile.pl -g start(1)

它给出了一个错误

syntax error near unexpected token '('

应该怎么做才能在顶层之前传递一个非零元数谓词作为目标?

4

1 回答 1

5

我认为这与 SWI-prolog 本身无关/无关,而与命令行处理程序更多。

如果我将目标放在单引号 ( '') 之间,它会起作用:

swipl -s consultingfile.pl -g 'start(1)'

括号可能被 shell 错误地解释了。

如果我使用你的命令,它会给出:

$ swipl -s consultingfile.pl -g start(1)
bash: syntax error near unexpected token `('

但请注意bash冒号前。这意味着永远不会真正给予控制权swipl,抱怨括号的是 bash。

通常,最好将项目放在引号中,以便将内容分组为单个参数。

于 2015-06-07T21:40:06.020 回答