Welcome to the CHICKEN Scheme pasting service

non-blocking read for threads added by damo on Fri Mar 28 09:00:13 2025

(define (non-blocking-read-line input-port)
  (let ((posix-file-number (port->fileno input-port))
	(return-value ""))
    (when (file-select posix-file-number #f 1)
      (do ((ch (car (file-read posix-file-number 1)) (car (file-read posix-file-number 1))))
	  ((string= ch "\n"))
	(set! return-value (string-append return-value ch))))
    (if (not (string= return-value ""))
	(set! return-value (string-append return-value "\n")))
    return-value))

Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
What's the procedure to access a character in a string by index in R5RS?
Visually impaired? Let me spell it for you (wav file) download WAV