swi-prolog: remove '|:' before user input in compiled program -
whenever compile swi-prolog, adds |:
before user input show supposed write something, fine, need pipe output of program program, preferably without |:
.
my compilation options are:
swipl -nodebug -g true -o -q --toplevel=quiet --stand_alone=true -o main -c main.pl
you need say
prompt(_, '')
somewhere in program before start reading , writing standard streams. entry prompt/2
:
a prompt printed if 1 of read predicates called , cursor @ left margin. printed whenever newline given , term has not been terminated. prompts printed when current input stream user.
the invocation above sets prompt empty atom (ignoring whatever prompt before). example, following prompt.pl
:
:- current_prolog_flag(verbose, silent). :- use_module(library(readutil)). main :- read_line_to_codes(user_input, line), format("~s~n", [line]), halt. main :- halt(1).
then:
$ swipl -q --goal=main -o prompt -c prompt.pl $ ./prompt |:foobar foobar $
:- current_prolog_flag(verbose, silent). :- use_module(library(readutil)). main :- prompt(_, ''), read_line_to_codes(user_input, line), format("~s~n", [line]), halt. main :- halt(1).
and gone:
$ swipl -q --goal=main -o prompt -c prompt.pl $ ./prompt foobar foobar $
if have included program similar first version of prompt.pl
, resulting output might have been easier more people understand asking.
Comments
Post a Comment