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)'

括弧はシェルによって間違って解釈されている可能性があります。

あなたのコマンドを使用すると、次のようになります。

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

ただし、bashコロンの前に注意してください。つまり、制御が に実際に渡されることはありませんswipl。括弧について不平を言うのは bash です。

一般に、コンテンツを単一のパラメーターとしてグループ化するには、アイテムを引用符で囲む方が適切です。

于 2015-06-07T21:40:06.020 に答える