Skip to content
Related Articles
Open in App
Not now

Related Articles

Output Functions in LISP

Improve Article
Save Article
  • Last Updated : 08 Aug, 2022
Improve Article
Save Article

Output functions need an optional argument known as output stream which by default is “output-stream” and can be assigned to another stream where the output has to be sent.

  • Write:

write object   key : stream

Example 1:


; LISP program for Write
(write "Hello World")
(write "To")
(write "The")
(write "LISP")
(write "World")



  • print, pprint , princ , prin1:

print object   stream

print ->>prints  with a preceding newline and followed by a space.

pprint object stream

pprint ->>like print except that the trailing space is omitted.

princ object stream

princ ->>like prin1 except that the output has no escape character

prin1 object stream

prin1 ->>returns the item as its value.

Example 2:


; LISP program for print
(print "Hello World")
(pprint "To")
(prin1 "The")
(princ "LISP")



  • write to string , print to string:

write-to-string object  key stream 

prin1-to-string object

princ-to-string object The output character string is returned as object from functions.

  • write-char, write-string, write-line:

write-char character  stream return character and print output

write-string string  stream  key :start :end writes the particular substring of string to output 
write-line string  stream   key :start :end same as write-string but succeed with newline

  • Newline functions:

terpri  stream

print a new line to the stream
fresh-line  stream

print new line if stream is not at start of line.

  • write byte:

write-byte integer binary-output-stream

write one byte i.e. the value of integer.

  • finish output, force output, clear output:

finish-output & optional output-stream

ensure all output sent is reached to stream and then only return null. 

force-output & optional output-stream

return nil without waiting for completion of task and force output start the emptying of buffer

clear-output & optional output-stream

abort any outstanding output operation in progress

  • output to a binary stream:

write-byte integer binary-output-stream

write-byte writes one byte, the value of integer. It is an error if integer is not of the type specified as the :element-type argument to open when the stream was created. The value integer is returned.

  • output to character streams:

write object &key :stream :escape :radix :base :circle :pretty 

:level :length :case :gensym :array :readably 

:right-margin :miser-width :lines :pprint-dispatch

same as above the output stream can be specified for other functions like as:

prin1 object &optional output-stream
print object &optional output-stream
pprint object &optional output-stream
princ object &optional output-stream

write-to-string object &key 

:escape :radix :base :circle :pretty :level :length :case :gensym :array
prin1-to-string object
princ-to-string object

write-char character &optional output-stream

terpri &optional output-stream
fresh-line &optional output-stream

finish-output &optional output-stream
force-output &optional output-stream
clear-output &optional output-stream

Example 3: 


; this program inputs a number and divide it by 2
(defun QuadNumber()
  ;for new line
   (princ "Input Number : "
  ;print statement "Input Number :"
   (setq n1 (read))          
  ;set n1 to input number 
   (setq quad (/ n1 4.0)) 
  ;set n1=n1/4
   (princ "The Number: ")
   (write n1)                 
  ;write n1
  ;new line
   (princ "The Number's fourth part: ")
   (write quad)                 
  ;write quad=n1/4 
 (QuadNumber)                 ;
 call function DoubleNumber



My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!