[plt-scheme] reading a whole file
Matthias Felleisen wrote:
>
> On Nov 4, 2008, at 10:39 AM, Jens Axel Soegaard wrote:
>
>> The obvious solution
>>
>> (define (readlines filename)
>> (call-with-input-file filename
>> (lambda (p)
>> (let loop ()
>> (let ((line (read-line p)))
>> (if (eof-object? line)
>> '()
>> (cons line (loop))))))))
>>
>> breaks on implementations with a small stack.
>
> I don't know what those implementations implement but it's certainly
> not Scheme :-)
Well, the recursive call to loop is not in tail-call position, and there
is no guarantee
on the upper bound of the number of active calls in RnRS, so this could
become a problem in simple implementations (for example implementations
that use inherit the a maximum stack size from C).
--
Jens Axel Søgaard