Why is it legal in a function definition to make self-call but illegal for a value?
问题 Structure and Interpretation of Computer Programs (SICP) 3.5.2 introduces infinite streams: (define ones (cons-stream 1 ones)) This code doesn't work in DrRacket, with the error: ones: undefined; cannot reference an identifier before its definition Other code like this: (define (integers-starting-from n) (cons-stream n (integers-starting-from (+ n 1)))) (define integers (integers-starting-from 1)) produce error: Interactions disabled (fall in infinite loop?) So far as I read(SICP), the key