При компиляции и запуске кода ниже (pl_check_input.pl
) я получаю "user directive failed
" в строке ":-initialization..."
:- dynamic(doit/0).
:- initialization(doit).
:- include(head).
doit :-
readFB(user_input),
writeFB,
halt.
:- include(tail).
$ gplc --no-del-temp --no-top-level pl_check_input.pl
$ ./pl_check_input <fb1 >fb2
warning: /home/tarvydas/Dropbox/Projects/vsh/pl-vsh/pl_check_input.pl:2: user directive failed
Если я удалю оскорбительную строку
:- dynamic(doit/0).
:- include(head).
doit :-
readFB(user_input),
writeFB,
halt.
:- include(tail).
$ gplc --no-del-temp --no-top-level pl_check_input.pl
$ ./pl_check_input <fb1 >fb2
Warning: no initial goal executed
use a directive :- initialization(Goal)
or remove the link option --no-top-level (or --min-bips or --min-size)
Любые идеи будут очень приветствоваться.
В конечном счете, у меня есть этот код, работающий из REPL
, но я хочу поместить его в сценарий конвейера linux и удалить различные строки баннера, которые идут с top-level/0.