Как запустить SWI-Prolog из командной строки?
Есть ли способ просто создать пролог сценарий под названиемhello.pl
как это:
#!/usr/local/bin/swipl -q -s -t main
main:-
write('Hello World\n').
И сможете ли вы запустить его из терминала, как это?
$ hello.pl
Hello World
$
Когда я делаю это, это дает мне это:
hello.pl: line 3: main:-: command not found
hello.pl: line 4: syntax error near unexpected token `'Hello World\n''
hello.pl: line 4: ` write('Hello World\n').'
Я могу заставить его работать, написав это в командной строке:
$ swipl -q -f hello.pl -t main
Hello World
$
Но есть ли способ просто запустить прямой скрипт как исполняемый файл?
редактировать
Еще не смог заставить это работать. Вот вывод команды @Boris, заданный в комментариях к его ответу:
$ ls -l
total 8
-rwxr-xr-x 1 viatropos staff 235 Aug 26 20:28 example.pl
$ cat example.pl
#!/usr/local/bin/swipl
:- set_prolog_flag(verbose, silent).
:- initialization main.
main :-
format('Example script~n'),
current_prolog_flag(argv, Argv),
format('Called with ~q~n', [Argv]),
halt.
main :-
halt(1).
$ which swipl
/usr/local/bin/swipl
$ swipl --version
SWI-Prolog version 6.6.6 for x86_64-darwin13.1.0
$ ./example.pl
./example.pl: line 3: syntax error near unexpected token `('
./example.pl: line 3: `:- set_prolog_flag(verbose, silent).'
$
Я на Mac OSX 10.9.2 и установил swipl с homebrew черезbrew install swi-prolog --with-libarchive