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

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -