2016-06-16 8 views
1

私はこれを行う方法を見つけることができません。以前の実装ではread-lineが利用できましたが、何らかの理由でChezにはありません。Chez-Schemeで入力行を読む方法は?

入力行を読み込むにはどうすればよいですか?

答えて

1

Chez SchemeはR6RSの実装です。 R7RS read-lineの代わりにR6RS get-lineを使用してください。

0

私は標準プレリュードにread-lineを持っています。キャリッジリターン、ラインフィード、またはその両方として、次のいずれかの順序で行末を処理します。

(define (read-line . port) 
    (define (eat p c) 
    (if (and (not (eof-object? (peek-char p))) 
      (char=? (peek-char p) c)) 
     (read-char p))) 
    (let ((p (if (null? port) (current-input-port) (car port)))) 
    (let loop ((c (read-char p)) (line '())) 
     (cond ((eof-object? c) (if (null? line) c (list->string (reverse line)))) 
      ((char=? #\newline c) (eat p #\return) (list->string (reverse line))) 
      ((char=? #\return c) (eat p #\newline) (list->string (reverse line))) 
      (else (loop (read-char p) (cons c line))))))) 
関連する問題