This file is indexed.

/usr/share/zenlisp/streams.l is in zenlisp 2013.11.22-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
; zenlisp example program
; By Nils M Holm, 1998-2008
; See the file LICENSE for conditions of use.

(define (stream v first filter rest lim final)
  (letrec
    ((find
      (lambda (x)
        (cond ((lim x) x)
              ((filter (first x)) x)
              (t (find (rest x))))))
     (make-stream
       (lambda (v)
         (lambda ()
           (let ((nf (find v)))
             (cond ((lim nf) final)
                   (t (cons (first nf)
                            (make-stream (rest nf))))))))))
    ((make-stream v))))

(define (all x) :t)

(define (none x) :f)

(define (value s) (car s))

(define (next s) ((cdr s)))

(define pass not)

(define (list->stream v)
  (stream v car all cdr null :f))

(define (stream->list s)
  (letrec
    ((s->l
       (lambda (s lst)
         (cond (s (s->l (next s)
                        (cons (value s) lst)))
               (t (reverse lst))))))
    (s->l s ())))

(define (stream-member p s d)
  (cond ((eq s d) d)
        ((p (value s)) s)
        (t (stream-member p (next s) d))))

(define (map-stream f s)
  (stream s (lambda (s) (f (value s))) all next pass :f))

(define (filter-stream p s)
  (stream s value p next pass :f))

(define (append-streams s1 s2)
  (stream s1 value all next pass s2))