2
(define (read-all-input)
  (local ((define line (bytes->list (read-bytes 4))))
    (if (eof-object? line)
        empty
        (cons line (read-all-input)))))

(void (read-all-input))

上記のコードは、bytes->list がバイト文字列型の引数を想定しているのに # が与えられているため、失敗します。

4

2 に答える 2

3
#lang scheme

(define (read-all-input)
 (let ((b (read-bytes 4)))
  (cond
   ((eof-object? b) empty)
   (else (cons b (read-all-input)))
)))

(void (read-all-input))

この関数は、バイトをバイトのリストに読み込みます。

于 2009-10-20T18:10:17.270 に答える
0

何を取得したいのかよくわかりませんが、これが私の試みです:

(define read-all-input
  (lambda ()
      (let ((line (read-bytes 4)))
        (if (eof-object? line)
            '()
            (cons (bytes->list line) (read-all-input))))))
于 2009-10-20T02:48:28.387 に答える