home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / soundpot / f / ilisp-2.lbr / PP.LZP / PP.LSP
Encoding:
Text File  |  1993-10-26  |  1.9 KB  |  18 lines

  1. (QUOTE iLISP-Library-File)
  2. 1776
  3.       (QUOTE %(C%)% Copyright% by% Computing% Insights,% 1983)
  4.                             
  5. ;(QUOTE (((FIT X) - Check if X will fit on the current line) (ARGUMENT: X - any data object) (DESCRIPTION: Returns T if X will fit (when printed with PRIN1) on the) (remainder of the current line. Returns () if it won%'t. This is used) (by PPRIN2.)))
  6. (DEFINE FIT (X) (< (NCHARS X) (- (LINELENGTH) (POSITION))))
  7. (QUOTE ())
  8. ;(QUOTE (((PP X) - Pretty Print X) (ARGUMENT: X - any LISP data object) (VALUE: ()) (DESCRIPTION: Pretty prints X, includes a final (TERPRI) .)))
  9. (DEFINE PP (X) (PROGN (PPRIN2 X) (TERPRI)))
  10. (QUOTE ())
  11. ;(QUOTE (((PPRIN2 X) - pretty print X) (ARGUMENT: X - any LISP data object) (VALUE: ()) (DESCRIPTION: If X is not a list, PPRIN2 is just like PRIN2.) (If X is a list, PPRIN2 prints it with carriage returns and) (indentations inserted to make it more readable.) (%     It also replaces lists of the form: (QUOTE X) with) (%     %'X forms.) (NOTE: This version has been revised to make use of a simple function) (PPRIN3 which prints list elements separated by the execution of a) (delimiter function.)))
  12. (DEFINE PPRIN2 (X) (IF (LISTP X) (COND ((EQ (QUOTE QUOTE) (CAR X)) (OUTB 39) (PPRIN2 (CADR X)) X) (T (PRIN1 (QUOTE %()) (IF (FIT X) (PPRIN3 X (LAMBDA () (SPACES 1))) (PROGN (PPRIN2 (CAR X)) (SPACES 1) (COND ((> (POSITION) 25) (TERPRI) (SPACES 3))) (LETSYS ((MARGIN (POSITION))) (PPRIN3 (CDR X) TERPRI)))) (PRIN1 (QUOTE %))) X)) (PRIN2 X)))
  13. (QUOTE ())
  14. ;(QUOTE (((PPRIN3 L D) - print list elements) (DESCRIPTION: L is a non nil list. D is a function of no arguments) (which provides a delimiter between elements of L.)))
  15. (DEFINE PPRIN3 (L D) (PROGN (PPRIN2 (CAR L)) (COND ((CDR L) (D) (PPRIN3 (CDR L) D)))))
  16. (QUOTE ())
  17. (QUOTE (PPRIN3 (1676 1508) PPRIN2 (1154 658) PP (600 454) FIT (380 129)))
  18.