library(prompt) defines several commands for reading prompted
input from the terminal. In fact,
library(ask) is built on top
of this package.
library(ask)to print the prompt or question. You may find it useful in constructing your prompted input commands. If Prompt is any term except a list, it is written to the terminal using
write/1; if Prompt is a list of terms, each element of the list is written to the terminal using
write/1, with no additional layout or punctuation. After writing Prompt to the terminal, the terminal output is flushed, so that Prompt will appear on the terminal before the user has to type an answer.
prompt/1ensures that Prompt always starts at the beginning of a line.
write/1; it is normally a single atom, and should never be a list of character codes.
prompted_line/3also returns the end-of-line character, while
prompted_line/2simply checks that the end-of-line character is not end-of-file. When you want to ask the user of your program a question, use
prompted_line/[2,3]instead of changing I/O streams yourself, or using
ttyget0/1and its associates. In order to ask the user of your program "Do you really want to stop?" and stop if the user says yes or anything else beginning with a lowercase y, simply write
conditional_halt :- prompted_line('Do you really want to stop? ', [0'y|_]), halt.
You can use
prompted_line/[2,3] without worrying what the current I/O streams
are, or whether you need to call
ttyflush/0 or not. Also, as with
get_line/[1,2], an input line ends
line terminator character. The user does not have to end
prompted_line/[2,3] input with a ., just with <RET>.