수색…


소개

scheme의 입력 및 출력은 대개 포트를 통해 처리됩니다. 포트는 Scheme 외부의 세계와 상호 작용하는 데 사용되는 데이터 구조입니다. 포트는 파일에만 국한되지 않고 소켓 읽기 / 쓰기에 사용될 수 있습니다. 어떤면에서 port 객체는 파일 및 소켓을 조작 할 수있을뿐만 아니라 OS와의 모든 종류의 읽기 / 쓰기 작업을 수행 할 수있는 범용 객체입니다. 예를 들어, 프린터에 쓰거나 포트를 사용하여 Scheme에서 CNC 기계를 제어 할 수있는 포트를 구현할 수 있습니다.

입력 포트 만들기

입력 포트는 다양한 방법으로 생성 될 수 있지만 일반적 open-input- 메소드는 open-input- 시작합니다.

문자열 포트

open-input-string 사용하여 문자열을 포트로 사용할 수 있습니다. 문자열에서 읽을 수있는 포트를 만듭니다.

(define p
  (open-input-string "(a . (b . (c . ()))) 34"))

파일 포트

open-input-file 하여 읽을 파일을 열 수 있습니다.

(define p
  (open-input-file "path/to/file"))

입력 포트에서 읽기

입력 포트에서 읽기는 여러 가지 방법으로 수행 할 수 있습니다. 우리는 REPL에서 사용하는 read 메소드를 사용할 수 있습니다. 그것은 공간으로 분리 된 표현들을 읽고 해석 할 것입니다.

위의 문자열 포트에서 예제를 보자. 다음과 같이 포트에서 읽을 수 있습니다.

(define p
  (open-input-string "(a . (b . (c . ()))) 34"))
(read p) -> (a b c)
(read p) -> 34

특수 메소드 인 read-char 사용하여 포트에서 char 로 읽을 수 있습니다. 이것은 우리가 읽고있는 포트에서 하나의 char 값을 반환합니다.

(define p (open-input-string "hello"))
(read-char p) -> #\h


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow