(LETREC PRIMES (PRIMES LAMBDA (X) (LET (SIEVE X INTSFROM2) (INTSFROM2 INTS (QUOTE 1)))) (SIEVE LAMBDA (X STREAM) (IF (EQ X (QUOTE 0)) (QUOTE NIL) (CONS (CAR STREAM) (SIEVE (SUB X (QUOTE 1)) (FILTER (CAR STREAM) (FORCE (CDR STREAM))))))) (INTS LAMBDA (X) (LET (CONS Y (DELAY (INTS Y))) (Y ADD X (QUOTE 1)))) (FILTER LAMBDA(P Y) (IF (EQ (REM (CAR Y) P) (QUOTE 0)) (FILTER P (FORCE (CDR Y))) (CONS (CAR Y) (DELAY (FILTER P (FORCE (CDR Y))))))))&