home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 01 / levelki / sys.lsp < prev   
Encoding:
Text File  |  1988-04-03  |  643 b   |  31 lines

  1.  ; sys.lsp ist eine Sammlung Lisp-definierter Funktionen
  2.  
  3. (define (memo-proc p)
  4.   (let ((a ()) (r ()))
  5.        (lambda ()
  6.          (if (not a)
  7.              (begin (set! r (p)) (set! a t) r)
  8.                     r))))
  9.  
  10. (define (force %$%d)
  11.   (define %$%q (cadr %$%d))
  12.   (%$%q))
  13.  
  14. (define (head x) (car x))
  15.  
  16. (define (tail x) (force (cdr x)))
  17.  
  18. (define the-empty-stream '%empty-stream%)
  19.  
  20. (define (stream? x)
  21.   (if (empty-stream? x) t
  22.       (if (pair? x)
  23.           (delayed? (cdr x))
  24.           nil)))
  25.  
  26. (define cons-stream (dlambda (h ta)
  27.   (cons (force h) ta)))
  28.  
  29. (define (empty-stream? x)
  30.   (equal? x the-empty-stream))
  31.