Good Place. Good Things. Good Time.

Prolog write

Prolog write

Introduction to Prolog write

Prolog write is defined as, ‘write’ is an in-built predicate in prolog, it returns all the information that we required to show in the output, it gives clear output that means if we required output related to the program and with something friendly then we can use write predicate in the program, it uses terms to the current output by using appropriate brackets and operators, and that can be called as ‘write(Y)’ in which it writes the term Y to the current output stream, the stream is a continuous window with code writer, if an argument is a string, then it prints the string without quotes.


The syntax for ‘write’ in prolog will be as given below:

“write ('Enter the file name').” :

Here, the ‘write’ predicate will show the output as it is from the bracket but without quotes.

“write(+Stream, +Term)” :

We can read it as writing the term on the output stream. In this case, we need to call the ‘write’ by putting inputs.


o Term – It is a term that will be shown in the current output.
o Stream – It is a window or console where the output can be seen.

How write work in prolog?

The ‘write’ is a predefined in-built predicate in prolog, in which the terms are operated and also we can see the output in user-friendly notations that means user can understand the use of notation. This can also written as ‘write/1’. We can also use two write/1 commands, one after the other.

The working of built-in predicate write/1 is as following, it taking terms and that will print on the screen with user-friendly notations so that user can understand it.

For example,

o write(8+9+7).
output is :

It gives the output as we use in terms.

o write(+(4,1)).
output is :

The above query will give output as shown above.

o write([m+n+o]).
Output is :
o write(.(u,.(v,[]))).
Output is :

If we want elements to be arranged in a user-friendly format then we can follow the above examples as per the needs.

Now we will see when it will returns the contains variables,

o write(D).

Output is:


As above when we call the variable it will return the contains variable with its value prefix with _(underscore).

o E = d, write(E).

Output is:

E = d

This is a case where we can give values to the term, here we given the value to the E and that will also be shown in the output because it contains the variable.

Let us see how to use two write/1 commands in prolog,

o write(m),write(n).

Output is :


In this case, we can say that prolog allow to writes two ‘write’ commands one after the other and the output is continuous, which means it will not take space or comma automatically.

o write(m),write(' '),write(n).

Output is :

m n

In this case, we put write(‘ ‘) to print the space between two letters that are m,n, because when we write commands one after the other then it will automatically print one after the other means it will not take space so that we need to tell prolog to print space as ‘write(‘ ‘)’.

o write(m),write(' '),write(n).

Output is :

m n

In this case, we have given 5 spaces between two letters. It means that we can put more than one space but we have to tell that to prolog to print it.

o write(p),tab(6),write(q).

Output is :

p q

In this case, we can give space by using tab predicate. If we want six spaces in between the two letters then we can use tab predicate but we have to give arguments to it, which means if we want 6 spaces then pass argument 6 in tab.

o write(i),nl,write(j).

Output is :


In this case, we used ‘nl’ predicate to break the line, ‘nl’ is a formatting predicate that tells to prolog to break the line and to go on printing on the next line. This is also a useful predicate in prolog.
The working of the ‘write’ predicate depends on the query and we can prepare queries per the requirements, so that as we have seen above many different types of examples with their outputs and the working of ‘write’ is very friendly and user can easily understand it.

Example #1

:- initialization(main).
main :- write('Welcome').


1) write(d+e+f).
2) write(+(2,3)).
3) write(.(5,.(6,[]))).

Output :

prolog write 1

In the above program, at first ‘write’ predicate in the second line shows the quoted information in the output window that is automatically called while compiling. And in the third line, we use ‘write’ with the term ‘(d+e+F)’ but we need to call it by giving input. In this case, we give the input as ‘write(d+e+f).’, then it provides output as a term used.

When we give the input ‘write(+(2,3)).’ then the output will be:


When we give input ‘write(.(5,.(6,[]))).’ then output will be:

prolog write 2

Example #2

:- initialization(main).
main :- write('Contain variables').


1) write(A).
2) B = b, write(B).


prolog write 3

In the above program, we called the ‘write’ predicate by giving input that is ‘write(A).’ then it gives output as it contains variables if we using the term as in capital letters then it will return the contains variables but if we put term as lowercase ‘a’ as an input then the output is ‘a’ itself.

When we give input as ‘B = b, write(B).’ then the output will be given below:


that means it will show the output as we put the values to its.


In the above article, we conclude that there are many predicates available in prolog out of that the ‘write’ is also a predefined predicate which is used to return the output as per the operations and defining as we see above and we can also conclude that above predicate is also useful to show program-related information in output.

Recommended Articles

This is a guide to Prolog write. Here we discuss the Introduction, syntax, How write work in prolog? examples with code implementation. You may also have a look at the following articles to learn more –

  1. Prolog Operator
  2. Prolog Programming
  3. Prolog findall
  4. PHP XMLWriter

The post Prolog write appeared first on EDUCBA.

Read original article here: Prolog write

Read original article here: Prolog write

Disclaimers and Denial of responsibility..!

Denial of responsibility! is an automatic aggregator of all media around the world. In each content, the hyperlink to the primary source is specified. All trademarks belong to their rightful owners, all materials to their authors. If you are the owner of the content and do not want us to publish your materials, please contact us by email – . The content will be deleted within 72 hours.
You might also like
Leave A Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.