A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.lispworks.com/documentation/lw71/CLHS/Body/v_pr_lev.htm below:

CLHS: Variable *PRINT-LEVEL*, *PRINT-LENGTH*

Variable *PRINT-LEVEL*, *PRINT-LENGTH*

Value Type:

a non-negative integer, or nil.

Initial Value:

nil.

Description:

*print-level* controls how many levels deep a nested object will print. If it is false, then no control is exercised. Otherwise, it is an integer indicating the maximum level to be printed. An object to be printed is at level 0; its components (as of a list or vector) are at level 1; and so on. If an object to be recursively printed has components and is at a level equal to or greater than the value of *print-level*, then the object is printed as ``#''.

*print-length* controls how many elements at a given level are printed. If it is false, there is no limit to the number of components printed. Otherwise, it is an integer indicating the maximum number of elements of an object to be printed. If exceeded, the printer will print ``...'' in place of the other elements. In the case of a dotted list, if the list contains exactly as many elements as the value of *print-length*, the terminating atom is printed rather than printing ``...''

*print-level* and *print-length* affect the printing of an any object printed with a list-like syntax. They do not affect the printing of symbols, strings, and bit vectors.

Examples:

 (setq a '(1 (2 (3 (4 (5 (6))))))) =>  (1 (2 (3 (4 (5 (6))))))
 (dotimes (i 8) 
   (let ((*print-level* i)) 
     (format t "~&~D -- ~S~%" i a)))
>>  0 -- #
>>  1 -- (1 #)
>>  2 -- (1 (2 #))
>>  3 -- (1 (2 (3 #)))
>>  4 -- (1 (2 (3 (4 #))))
>>  5 -- (1 (2 (3 (4 (5 #)))))
>>  6 -- (1 (2 (3 (4 (5 (6))))))
>>  7 -- (1 (2 (3 (4 (5 (6))))))
=>  NIL

 (setq a '(1 2 3 4 5 6)) =>  (1 2 3 4 5 6)
 (dotimes (i 7) 
   (let ((*print-length* i)) 
     (format t "~&~D -- ~S~%" i a))) 
>>  0 -- (...)
>>  1 -- (1 ...)
>>  2 -- (1 2 ...)
>>  3 -- (1 2 3 ...)
>>  4 -- (1 2 3 4 ...)
>>  5 -- (1 2 3 4 5 6)
>>  6 -- (1 2 3 4 5 6)
=>  NIL

(dolist (level-length '((0 1) (1 1) (1 2) (1 3) (1 4) 
                        (2 1) (2 2) (2 3) (3 2) (3 3) (3 4)))
 (let ((*print-level*  (first  level-length))
       (*print-length* (second level-length)))
   (format t "~&~D ~D -- ~S~%"
           *print-level* *print-length* 
           '(if (member x y) (+ (car x) 3) '(foo . #(a b c d "Baz"))))))
>>  0 1 -- #
>>  1 1 -- (IF ...)
>>  1 2 -- (IF # ...)
>>  1 3 -- (IF # # ...)
>>  1 4 -- (IF # # #)
>>  2 1 -- (IF ...)
>>  2 2 -- (IF (MEMBER X ...) ...)
>>  2 3 -- (IF (MEMBER X Y) (+ # 3) ...)
>>  3 2 -- (IF (MEMBER X ...) ...)
>>  3 3 -- (IF (MEMBER X Y) (+ (CAR X) 3) ...)
>>  3 4 -- (IF (MEMBER X Y) (+ (CAR X) 3) '(FOO . #(A B C D ...)))
=>  NIL

Affected By: None.

See Also:

write

Notes: None.


Copyright 1996-2005, LispWorks Ltd. All rights reserved.

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4