Hello all, new chicken schemer here.
I'm writing an AMPQ client for fun (as One does) and can't figure out the correct way to read from a TCP port. I want to block until input is available, and then read all buffered data into a byte buffer (I'm using bitstring, but it can be anything really). This is what I've come up with: (let* ((buf (->bitstring "")) (first-byte (read-string 1 in))) (if (eq? #!eof first-byte) ... handle eof (begin (bitstring-append! buf (string->bitstring (string-append first-byte (read-buffered in)))) ... do something with buf)) It works okay, but it seems a bit clunky to me. Is there a more idiomatic way of reading a byte buffer from a port? Cheers, -- Fredrik